Вы когда-нибудь придумывали «правильный» способ сделать это? В настоящее время я просто использую задачу gulp, чтобы скопировать материал из node_modules в мой общедоступный каталог.
sjmeverett
Позже я использовал его в качестве компонента беседки ...
Гован
Ответы:
106
Установить как npm install font-awesome --save-dev
В вашем файле development less вы можете либо импортировать весь шрифт awesome с меньшим использованием @import "node_modules/font-awesome/less/font-awesome.less", либо заглянуть в этот файл и импортировать только те компоненты, которые вам нужны. Думаю, это минимум для основных иконок:
/* 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";
Обратите внимание: вы все равно не сэкономите столько байтов, сделав это. В любом случае вы в конечном итоге включите от 2 до 3 тысяч строк неминифицированного CSS.
Вам также необходимо будет обслуживать сами шрифты из папки, которая называется /fonts/в вашем общедоступном каталоге. Вы можете просто скопировать их туда с помощью простой задачи gulp, например:
Следует особо подчеркнуть, что шрифты также нужно было размещать в папке шрифтов ... Я, наверное, час пытался разобраться в этой простой мелочи.
Alex J
3
Вы также можете изменить путь статики шрифта, установив переменную fa-font-pathв желаемое место.
zusatzstoff
В приведенном выше примере вам нужно следовать за вашим меньшим импортом со следующим переопределением, чтобы файлы шрифтов с потрясающим шрифтом, скопированные с помощью gulp, были найдены после развертывания:@fa-font-path: "/public/fonts";
CAK2,
56
Вы должны установить правильный путь к шрифту. например
Вам нужно будет скопировать файлы как часть процесса сборки. Например, вы можете использовать npm postinstallсценарий для копирования файлов в правильный каталог:
Для некоторых инструментов сборки уже существуют пакеты font-awesome. Например, в webpack есть font-awesome-webpack, который позволяет вам просто require('font-awesome-webpack').
В webpack.config.js настройте copy-webpack-plugin . ПРИМЕЧАНИЕ. Папка dist для webpack 4 по умолчанию - «dist», поэтому мы копируем папку webfonts из node_modules в папку dist.
Наконец, в файле main.scss укажите fontawesome, куда была скопирована папка веб- шрифтов, и импортируйте нужные файлы SCSS из 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`
и примените следующее font-familyк желаемой области (ам) в вашем html-документе, где вы хотите использовать значки fontawesome.
Пример :
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)}
FontAwesome рекомендует устанавливать их пакет npm как devDependency. Чтобы это решение работало (в производстве), должен ли пакет быть установлен как обычная зависимость?
Джон Дж. Камиллери
1
Чтобы ответить на мой собственный вопрос: да, его нужно устанавливать вместе, --saveа не--save-dev
Джон Дж. Камиллери
5
Вы можете добавить его между <head></head>тегами так:
Или каким бы ни был ваш путь к вашему node_modules.
Изменить (2017-06-26) - Отказ от ответственности: ЕСТЬ ЛУЧШИЕ ОТВЕТЫ. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ЭТОТ МЕТОД. Во время этого первоначального ответа хорошие инструменты не были столь распространены. С текущими инструментами сборки, такими как webpack или browserify, вероятно, нет смысла использовать этот ответ. Я могу удалить его, но я думаю, что важно выделить различные варианты, которые у него есть, и возможные действия, которые можно и чего нельзя делать.
Я не думаю, что кто-то захочет включать каталог node_modules в сборку и ссылаться на него напрямую.
Fabian Leutgeb
5
Я понимаю, но это еще вариант. Нет однозначного решения. :) Если у вас есть система комплектации, то можете @import '../node_modules/...'как и другие ответы указали.
Con Antonakos,
1
по сравнению с другими ответами, я считаю, что это лучше всего. вы все еще ссылаетесь на относительный путь через node_modules в других ответах. если расположение файла css внутри font-awesomeдолжно измениться, это потребует настройки или обслуживания, как и другие ответы. разница в том, что этот ответ не требует перевода или задач. он просто размещает импорт именно там, где его следует ожидать; в <link>теге.
североамериканский
3
У простого фордера npm должно быть не менее 10+ МБ, и ни один пользователь не захочет добавлять этот вес к проекту по какой-либо причине. Весь смысл npm в том, чтобы помогать во время разработки и минимизировать / уменьшать размер производства после сборки. Не думайте, что это хороший вариант, даже если он работает. ; )
T04435
Я добавил следующее заявление об отказе от ответственности: во время этого исходного ответа хорошие инструменты не были столь распространены. С текущими инструментами сборки, такими как webpack или browserify, вероятно, нет смысла использовать этот ответ. Я могу удалить его, но я думаю, что важно выделить различные варианты, которые у него есть, и возможные действия, которые можно и чего нельзя делать.
Con
3
Поскольку я сейчас изучаю node js, я тоже столкнулся с этой проблемой. Все, что я сделал, это в первую очередь установил font-awesome с помощью npm
npm install font-awesome --save-dev
после этого я установил статическую папку для css и шрифтов:
Если вы используете npm, вы можете использовать Gulp.js как инструмент сборки для сборки пакетов Font Awesome из SCSS или LESS. В этом примере будет компилироваться код из SCSS.
Установите Gulp.js v4 локально и CLI V2 глобально.
Ответы:
Установить как
npm install font-awesome --save-dev
В вашем файле development less вы можете либо импортировать весь шрифт awesome с меньшим использованием
@import "node_modules/font-awesome/less/font-awesome.less"
, либо заглянуть в этот файл и импортировать только те компоненты, которые вам нужны. Думаю, это минимум для основных иконок:Обратите внимание: вы все равно не сэкономите столько байтов, сделав это. В любом случае вы в конечном итоге включите от 2 до 3 тысяч строк неминифицированного CSS.
Вам также необходимо будет обслуживать сами шрифты из папки, которая называется
/fonts/
в вашем общедоступном каталоге. Вы можете просто скопировать их туда с помощью простой задачи gulp, например:источник
fa-font-path
в желаемое место.@fa-font-path: "/public/fonts";
Вы должны установить правильный путь к шрифту. например
мой-стиль.scss
источник
../assets/font-awesome/fonts
мне подходит. Спасибо.В моем файле style.css
источник
Вам нужно будет скопировать файлы как часть процесса сборки. Например, вы можете использовать
npm postinstall
сценарий для копирования файлов в правильный каталог:Для некоторых инструментов сборки уже существуют пакеты font-awesome. Например, в webpack есть font-awesome-webpack, который позволяет вам просто
require('font-awesome-webpack')
.источник
Используя webpack и scss:
Установите font-awesome с помощью npm (используя инструкции по установке на https://fontawesome.com/how-to-use )
Далее, с помощью копирования-WebPack-плагин , скопируйте WebFonts папки из node_modules в ваше DIST папки во время процесса сборки WebPack. ( https://github.com/webpack-contrib/copy-webpack-plugin )
В webpack.config.js настройте copy-webpack-plugin . ПРИМЕЧАНИЕ. Папка dist для webpack 4 по умолчанию - «dist», поэтому мы копируем папку webfonts из node_modules в папку dist.
Наконец, в файле main.scss укажите fontawesome, куда была скопирована папка веб- шрифтов, и импортируйте нужные файлы SCSS из node_modules .
и примените следующее
font-family
к желаемой области (ам) в вашем html-документе, где вы хотите использовать значки fontawesome.Пример :
источник
@import "../node_modules/[...]"
до@import "@/../node_modules/[...]"
resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}
а затем@import "node_modules/[...]
С помощью expressjs откройте его:
И вы можете увидеть это по адресу:
yourdomain.com/stylesheets/fontawesome/css/all.min.css
источник
devDependency
. Чтобы это решение работало (в производстве), должен ли пакет быть установлен как обычная зависимость?--save
а не--save-dev
Вы можете добавить его между
<head></head>
тегами так:Или каким бы ни был ваш путь к вашему
node_modules
.Изменить (2017-06-26) - Отказ от ответственности: ЕСТЬ ЛУЧШИЕ ОТВЕТЫ. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ЭТОТ МЕТОД. Во время этого первоначального ответа хорошие инструменты не были столь распространены. С текущими инструментами сборки, такими как webpack или browserify, вероятно, нет смысла использовать этот ответ. Я могу удалить его, но я думаю, что важно выделить различные варианты, которые у него есть, и возможные действия, которые можно и чего нельзя делать.
источник
@import '../node_modules/...'
как и другие ответы указали.font-awesome
должно измениться, это потребует настройки или обслуживания, как и другие ответы. разница в том, что этот ответ не требует перевода или задач. он просто размещает импорт именно там, где его следует ожидать; в<link>
теге.Поскольку я сейчас изучаю node js, я тоже столкнулся с этой проблемой. Все, что я сделал, это в первую очередь установил font-awesome с помощью npm
после этого я установил статическую папку для css и шрифтов:
и в html:
и работает нормально!
источник
Если вы используете npm, вы можете использовать Gulp.js как инструмент сборки для сборки пакетов Font Awesome из SCSS или LESS. В этом примере будет компилироваться код из SCSS.
Установите Gulp.js v4 локально и CLI V2 глобально.
Установите плагин gulp-sass с помощью npm.
Создайте файл main.scss в своей общей папке и используйте этот код:
Создайте файл gulpfile.js в каталоге вашего приложения и скопируйте его.
Запустите команду gulp build в командной строке и наблюдайте за волшебством.
источник
Я столкнулся с этим вопросом с похожей проблемой и подумал, что поделюсь другим решением:
Если вы создаете приложение Javascript, на значки font awesome можно ссылаться напрямую через Javascript:
Сначала выполните действия, описанные в этом руководстве :
Затем внутри вашего javascript:
После вышеуказанных шагов вы можете вставить значок внутри узла HTML с помощью:
Вы также можете получить доступ к строке HTML, представляющей значок, с помощью:
источник