Você já descobriu a maneira "correta" de fazer isso? No momento, estou apenas usando uma tarefa gulp para copiar as coisas de node_modules em meu diretório público.
sjmeverett
Usei-o como componente do caramanchão mais tarde ...
Govan
Respostas:
106
Instalar como npm install font-awesome --save-dev
Em seu arquivo de desenvolvimento menos, você pode importar a fonte inteira com menos uso @import "node_modules/font-awesome/less/font-awesome.less", ou olhar nesse arquivo e importar apenas os componentes que você precisa. Acho que este é o mínimo para ícones básicos:
/* adjust path as needed */@fa_path:"../node_modules/font-awesome/less";@import"@{fa_path}/variables.less";@import"@{fa_path}/mixins.less";@import"@{fa_path}/path.less";@import"@{fa_path}/core.less";@import"@{fa_path}/icons.less";
Como uma nota, você ainda não vai economizar tantos bytes fazendo isso. De qualquer forma, você vai acabar incluindo entre 2-3k linhas de CSS não minimizado.
Você também precisará servir as próprias fontes de uma pasta chamada /fonts/em seu diretório público. Você pode simplesmente copiá-los para lá com uma simples tarefa de gole, por exemplo:
É preciso ressaltar mais que as fontes também precisavam ser servidas em uma pasta de fontes ... Provavelmente passei uma hora tentando descobrir essa coisinha simples.
Alex J
3
Você também pode adaptar o caminho da estática da fonte definindo a variável fa-font-pathpara o local desejado.
zusatzstoff 01 de
No exemplo acima, você precisa seguir as suas menos importações com a seguinte substituição para que os arquivos de fonte incríveis copiados pelo gulp sejam encontrados após a implantação:@fa-font-path: "/public/fonts";
CAK2
56
Você deve definir o caminho da fonte adequado. por exemplo
Você precisará copiar os arquivos como parte do processo de construção. Por exemplo, você pode usar um npm postinstallscript para copiar os arquivos para o diretório correto:
Para algumas ferramentas de construção, existem pacotes fantásticos de fontes preexistentes. Por exemplo, webpack tem font-awesome-webpack que deixa você simples require('font-awesome-webpack').
Em webpack.config.js , configure copy-webpack-plugin . NOTA: A pasta webpack 4 dist padrão é "dist", então estamos copiando a pasta webfonts de node_modules para a pasta dist.
Por último, em seu arquivo main.scss , diga ao fontawesome para onde a pasta webfonts foi copiada e importe os arquivos SCSS que deseja de node_modules .
$fa-font-path:"/webfonts";// destination folder in dist//Adapt the path to be relative to your main.scss file@import"../node_modules/@fortawesome/fontawesome-free/scss/fontawesome";//Include at least one of the below, depending on what icons you want.//Adapt the path to be relative to your main.scss file@import"../node_modules/@fortawesome/fontawesome-free/scss/brands";@import"../node_modules/@fortawesome/fontawesome-free/scss/regular";@import"../node_modules/@fortawesome/fontawesome-free/scss/solid";@import"../node_modules/@fortawesome/fontawesome-free/scss/v4-shims";// if you also want to use `fa v4` like: `fa fa-address-book-o`
e aplique o seguinte font-family à (s) região (ões) desejada (s) em seu documento html onde você deseja usar os ícones de fontes incríveis.
Exemplo :
body {
font-family:'Font Awesome 5 Free';// if you use fa v5 (regular/solid)// font-family: 'Font Awesome 5 Brands'; // if you use fa v5 (brands)}
funciona bem para mim, eu só tive que ajustar o caminho de @import "../node_modules/[...]"para@import "@/../node_modules/[...]"
mecógrafo
Você pode adicionar um alias a webpack.config.js: resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}e então@import "node_modules/[...]
FontAwesome recomenda que seu pacote npm seja instalado como um devDependency. Para que esta solução funcione (em produção), o pacote deve ser instalado como uma dependência regular?
John J. Camilleri
1
Para responder à minha própria pergunta: sim, ele precisa ser instalado com --savee não--save-dev
John J. Camilleri
5
Você pode adicioná-lo entre sua <head></head>tag assim:
Ou qualquer que seja o seu caminho para o seu node_modules.
Editar (26-06-2017) - Aviso: HÁ RESPOSTAS MELHORES. POR FAVOR, NÃO USE ESTE MÉTODO. Na época desta resposta original, boas ferramentas não eram tão predominantes. Com as ferramentas de construção atuais, como webpack ou browserify, provavelmente não faz sentido usar esta resposta. Posso excluí-lo, mas acho importante destacar as várias opções que temos e os possíveis prós e contras.
Eu não acho que alguém iria querer incluir o diretório node_modules em um build e referenciá-lo diretamente.
Fabian Leutgeb
5
Eu entendo, mas ainda é uma opção. Não existe uma única resposta para uma solução. :) Se você tem um sistema de empacotamento, então você pode @import '../node_modules/...'gostar de outras respostas indicadas.
Con Antonakos
1
em comparação com outras respostas, acho que esta é a melhor. você ainda está fazendo referência ao caminho relativo por meio de node_modules nas outras respostas. se a localização do arquivo css dentro font-awesomefosse alterada, isso precisaria de ajustes ou manutenção tanto quanto as outras respostas. a diferença é que essa resposta não precisa de transpilação ou tarefas. ele apenas coloca a importação exatamente onde deveria ser esperada; em uma <link>tag.
norte
3
Um forder npm simples terá no mínimo 10 + MB, nenhum usuário vai querer adicionar esse peso a um projeto por qualquer motivo. O objetivo do npm é ajudar durante o desenvolvimento e minimizar / reduzir o tamanho da produção após a construção. Não pense que esta é uma boa opção, mesmo quando funciona. ; )
T04435
Eu adicionei a seguinte isenção de responsabilidade: na época desta resposta original, as boas ferramentas não eram tão predominantes. Com as ferramentas de construção atuais, como webpack ou browserify, provavelmente não faz sentido usar esta resposta. Posso excluí-lo, mas acho importante destacar as várias opções que se tem e os possíveis prós e contras.
Con Antonakos
3
Como atualmente estou aprendendo node js, também encontrei esse problema. Tudo o que fiz foi, em primeiro lugar, instalar a fonte incrível usando npm
npm install font-awesome --save-dev
depois disso, defino uma pasta estática para o css e as fontes:
Se você estiver usando o npm, poderá usar o Gulp.js, uma ferramenta de construção para construir seus pacotes Font Awesome a partir de SCSS ou LESS. Este exemplo irá compilar o código do SCSS.
Instale Gulp.js v4 localmente e CLI V2 globalmente.
Respostas:
Instalar como
npm install font-awesome --save-dev
Em seu arquivo de desenvolvimento menos, você pode importar a fonte inteira com menos uso
@import "node_modules/font-awesome/less/font-awesome.less"
, ou olhar nesse arquivo e importar apenas os componentes que você precisa. Acho que este é o mínimo para ícones básicos:Como uma nota, você ainda não vai economizar tantos bytes fazendo isso. De qualquer forma, você vai acabar incluindo entre 2-3k linhas de CSS não minimizado.
Você também precisará servir as próprias fontes de uma pasta chamada
/fonts/
em seu diretório público. Você pode simplesmente copiá-los para lá com uma simples tarefa de gole, por exemplo:fonte
fa-font-path
para o local desejado.@fa-font-path: "/public/fonts";
Você deve definir o caminho da fonte adequado. por exemplo
my-style.scss
fonte
../assets/font-awesome/fonts
funciona para mim. Obrigado.No meu arquivo style.css
fonte
Você precisará copiar os arquivos como parte do processo de construção. Por exemplo, você pode usar um
npm postinstall
script para copiar os arquivos para o diretório correto:Para algumas ferramentas de construção, existem pacotes fantásticos de fontes preexistentes. Por exemplo, webpack tem font-awesome-webpack que deixa você simples
require('font-awesome-webpack')
.fonte
Usando webpack e scss:
Instale font-awesome usando npm (usando as instruções de configuração em https://fontawesome.com/how-to-use )
Em seguida, usando o copy-Webpack-plugin , copie os WebFonts pasta da node_modules a sua dist pasta durante o processo de compilação Webpack. ( https://github.com/webpack-contrib/copy-webpack-plugin )
Em webpack.config.js , configure copy-webpack-plugin . NOTA: A pasta webpack 4 dist padrão é "dist", então estamos copiando a pasta webfonts de node_modules para a pasta dist.
Por último, em seu arquivo main.scss , diga ao fontawesome para onde a pasta webfonts foi copiada e importe os arquivos SCSS que deseja de node_modules .
e aplique o seguinte
font-family
à (s) região (ões) desejada (s) em seu documento html onde você deseja usar os ícones de fontes incríveis.Exemplo :
fonte
@import "../node_modules/[...]"
para@import "@/../node_modules/[...]"
resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}
e então@import "node_modules/[...]
Com expressjs, publique-o:
E você pode ver isso em:
yourdomain.com/stylesheets/fontawesome/css/all.min.css
fonte
devDependency
. Para que esta solução funcione (em produção), o pacote deve ser instalado como uma dependência regular?--save
e não--save-dev
Você pode adicioná-lo entre sua
<head></head>
tag assim:Ou qualquer que seja o seu caminho para o seu
node_modules
.Editar (26-06-2017) - Aviso: HÁ RESPOSTAS MELHORES. POR FAVOR, NÃO USE ESTE MÉTODO. Na época desta resposta original, boas ferramentas não eram tão predominantes. Com as ferramentas de construção atuais, como webpack ou browserify, provavelmente não faz sentido usar esta resposta. Posso excluí-lo, mas acho importante destacar as várias opções que temos e os possíveis prós e contras.
fonte
@import '../node_modules/...'
gostar de outras respostas indicadas.font-awesome
fosse alterada, isso precisaria de ajustes ou manutenção tanto quanto as outras respostas. a diferença é que essa resposta não precisa de transpilação ou tarefas. ele apenas coloca a importação exatamente onde deveria ser esperada; em uma<link>
tag.Como atualmente estou aprendendo node js, também encontrei esse problema. Tudo o que fiz foi, em primeiro lugar, instalar a fonte incrível usando npm
depois disso, defino uma pasta estática para o css e as fontes:
e em html:
e funciona bem!
fonte
Se você estiver usando o npm, poderá usar o Gulp.js, uma ferramenta de construção para construir seus pacotes Font Awesome a partir de SCSS ou LESS. Este exemplo irá compilar o código do SCSS.
Instale Gulp.js v4 localmente e CLI V2 globalmente.
Instale um plugin chamado gulp-sass usando npm.
Crie um arquivo main.scss em sua pasta pública e use este código:
Crie um gulpfile.js no diretório do seu aplicativo e copie-o.
Execute 'gulp build' em sua linha de comando e observe a magia.
fonte
Encontrei esta questão com um problema semelhante e pensei em compartilhar outra solução:
Se você estiver criando um aplicativo Javascript, ícones incríveis de fontes também podem ser referenciados diretamente por meio de Javascript:
Primeiro, siga as etapas neste guia :
Então, dentro do seu javascript:
Após as etapas acima, você pode inserir o ícone dentro de um nó HTML com:
Você também pode acessar a string HTML que representa o ícone com:
fonte