Com menos v2.7.3 (usando webpack v3.1.0 e less-loader v4.1.0) eu poderia importar fontes remotas como esta no meu arquivo main.less:
<strong i="6">@import</strong> url('https://fonts.googleapis.com/css?family=Nunito');
Com menos v3.0.1 usando a mesma configuração e dependências, agora só recebo este erro ao tentar construir:
Message:
./node_modules/css-loader??ref--1-2!./node_modules/postcss-loader/lib??ref--1-3!./node_modules/less-loader/dist/cjs.js??ref--1-4!./src/css/main.less
Module build failed:
*/
<strong i="10">@import</strong> url('https://fonts.googleapis.com/css?family=Nunito');
^
Can't resolve './https://fonts.googleapis.com/css?family=Nunito' in 'C:\Projekte\mine\homepage\src\css'
in C:\Projekte\mine\homepage\src\css\main.less (line 6, column 0)
Acho que isso pode estar relacionado ao fato de que Less não muda mais automaticamente para uma importação "css" (preservando a instrução @import
) apenas porque encontra uma string "css" em algum lugar da URL.
Experimente <strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');
Impressionante @matthew-dean que realmente ajudou. Muito obrigado!
@ matthew-dean Existe uma maneira de dizer ao compilador para usar https por padrão ao resolver urls de importações? por exemplo, quando eu uso <strong i="5">@import</strong> url(//fonts.googleapis.com/css?family=Open+Sans:400,700);
, a saída é
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(http://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0e.ttf) format('truetype');
}
Quando coloco isso em uma página que é carregada via HTTPS, recebo um erro de 'conteúdo misto' e as solicitações de http são bloqueadas pelo navegador. Então agora eu tenho que atualizar todas as importações para usar (css)
ou https://...
, então só estou me perguntando se eu poderia fazer isso com uma opção de configuração em vez disso?
então, estou me perguntando se eu poderia fazer isso com uma opção de configuração?
Não. Mais sobre a própria ideia de importar fonts.googleapis.com
em um CSS compilado é perigoso porque fonts.googleapis.com
detecta o navegador usado (obvoiusly Less em node
irá se reportar como Chrome / Chromium ) e pode retornar resultados diferentes dependendo disso (até agora não ouvi nenhum problema a esse respeito, mas pode ser interrompido a qualquer momento).
@ dmitriy-drenkalyuk Por que não basta escrever:
<strong i="6">@import</strong> url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
?
@matthew-dean Isso é o que eu fiz eventualmente, estava apenas procurando uma opção de fazer via config, para que não precisássemos buscar e atualizar todos os locais onde usamos tais importações.
Comentários muito úteis
Acho que isso pode estar relacionado ao fato de que Less não muda mais automaticamente para uma importação "css" (preservando a instrução
@import
) apenas porque encontra uma string "css" em algum lugar da URL.Experimente
<strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');