Как установить шрифт Awesome в Laravel Mix
Я пытался установить Font Awesome, используя Laravel Mix, но при выполнении команды run npm dev
я получаю следующее сообщение:
ОШИБКА Не удалось скомпилировать с 1 ошибкой
ошибка в. /~/font-awesome/scss/font-awesome.scss Сбой сборки модуля:/** ^ Неверный CSS после "... загрузить стили": ожидался 1 селектор или правило, было "var content = Requi "в /var/www/html/blog/node_modules/font-awesome/scss/font-awesome.scss (строка 1, столбец 1)
Я удалил комментарии в файле и попытался изменить путь шрифта, но это не решило проблему.
webpack.mix.js
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.copy('node_modules/font-awesome/fonts/', 'public/fonts')
.sass('node_modules/font-awesome/scss/font-awesome.scss', 'public/css')
.version();
fontawesome.scss
@import "variables";
@import "mixins";
@import "path";
@import "core";
@import "larger";
@import "fixed-width";
@import "list";
@import "bordered-pulled";
@import "animated";
@import "rotated-flipped";
@import "stacked";
@import "icons";
@import "screen-reader";
_variable.scss
// Variables
// --------------------------
$fa-font-path: "../fonts" !default;
$fa-font-size-base: 14px !default;
$fa-line-height-base: 1 !default;
// $fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly
$fa-css-prefix: fa !default;
$fa-version: "4.7.0" !default;
$fa-border-color: #eee !default;
$fa-inverse: #fff !default;
$fa-li-width: (30em / 14) !default;
// Continue...
Ответы
Ответ 1
Чтобы установить шрифт-awesome, вы должны сначала установить его с помощью npm. Итак, в вашем корневом каталоге вашего проекта:
npm install font-awesome --save
(Конечно, я предполагаю, что у вас уже установлены node.js и npm. И вы сделали npm install
в корневой директории проектов)
Затем отредактируйте файл resources/assets/sass/app.scss
и добавьте вверху этой строки:
@import "node_modules/font-awesome/scss/font-awesome.scss";
Теперь вы можете сделать, например:
npm run dev
Это создает неустановленные версии ресурсов в правильных папках. Если вы хотите их минимизировать, вы должны запустить:
npm run production
И затем вы можете использовать шрифт.
Ответ 2
Для шрифта Awesome 5 (webfont css) и Laravel mixin добавьте пакет для шрифта awesome 5
npm i --save @fortawesome/fontawesome-free
И импортируйте шрифт awesome scss в app.scss или ваш собственный файл scss
@import '[email protected]/fontawesome-free/scss/brands';
@import '[email protected]/fontawesome-free/scss/regular';
@import '[email protected]/fontawesome-free/scss/solid';
@import '[email protected]/fontawesome-free/scss/fontawesome';
скомпилируйте свои активы npm run dev
или npm run production
и включите скомпилированный css в макет
Ответ 3
Как установить Font Awesome 5 в Laravel 5.6 (правильный путь)
Создайте свою конфигурацию webpack.mix.js.
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
Установите последнюю бесплатную версию Font Awesome через менеджер пакетов, например, npm.
npm install @fortawesome/fontawesome-free
Эта запись о зависимости теперь должна быть в вашем package.json.
// Font Awesome
"dependencies": {
"@fortawesome/fontawesome-free": "^5.11.2",
В основном файле SCSS/resources/sass/app.scss импортируйте один или несколько стилей.
@import '[email protected]/fontawesome-free/scss/fontawesome';
@import '[email protected]/fontawesome-free/scss/regular';
@import '[email protected]/fontawesome-free/scss/solid';
@import '[email protected]/fontawesome-free/scss/brands';
Скомпилируйте свои активы и создайте минимизированную готовую к сборке сборку.
npm run production
Наконец, ссылайтесь на сгенерированный CSS файл в шаблоне/макете Blade.
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">
Ответ 4
Это для новых пользователей, которые используют Laravel 5.7 и Fontawesome 5.3
npm install @fortawesome/fontawesome-free --save
и в app.scss
@import '[email protected]/fontawesome-free/css/all.min.css';
Бежать
npm run watch
Использование в макете
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
Ответ 5
Для Laravel >= 5.5
- Выполнить
npm install font-awesome --save
- Добавить
@import "~font-awesome/scss/font-awesome.scss";
в resources/assets/saas/app.scss
- Запустите
npm run dev
(или npm run watch
или даже npm run production
)
Ответ 6
Я использую Laravel 5.5.14, и ни один из вышеперечисленных не работал у меня. Итак, вот шаги, которые я сделал, чтобы заставить его работать.
1.Установите шрифт-awesome с помощью npm:
npm install font-awesome --save
2. Переместите шрифты в общий каталог, добавив эту строку в webpack.mixin.js
mix.copyDirectory('node_modules/font-awesome/fonts', 'public/fonts/font-awesome');
3. Откройте приложение app.scss, чтобы указать путь к шрифтам в node_modules и какой относительный путь для компиляции:
$fa-font-path: "../fonts/font-awesome" !default;
@import "~font-awesome/scss/font-awesome.scss";
Ответ 7
Я недавно написал блог об этом для Laravel5.6. Ссылка на блог - https://www.samundra.com.np/integrating-font-awesome-with-laravel-5.x-using-webpack/1574
Этапы аналогичны приведенному выше описанию. Но в моем случае мне пришлось сделать дополнительные шаги, такие как настройка пути webfonts к шрифту-awesome в "общедоступном" каталоге. Установка корня ресурса в сочетании с Laravel и т.д. Подробности можно найти в блоге.
Я оставляю ссылку здесь, чтобы она помогала людям, для которых упомянутые решения не работают.
Ответ 8
неверный путь, который вы используете, вы можете просто открыть node_module и найти путь к font-awesome. Использование может использовать шрифт JS или SVG, но я предпочитаю стиль CSS.
сначала используйте эту команду для установки шрифт-awesome-free npm install --save-dev @fortawesome/fontawesome-free
после этого вы можете сделать это
@import "[email protected]/fontawesome-free/scss/fontawesome";
@import "[email protected]/fontawesome-free/scss/regular";
@import "[email protected]/fontawesome-free/scss/solid";
@import "[email protected]/fontawesome-free/scss/brands";
и я копирую путь шрифта, как показано ниже, это необязательно
.copy('node_modules/@fortawesome/fontawesome-free/webfonts', 'public/fonts');
и, наконец, просто запустите скрипт npm run dev
или npm run watch
в laravel
Ответ 9
npm install font-awesome --save
добавить ~/до пути
@import "~/font-awesome/scss/font-awesome.scss";
Ответ 10
Попробуйте следующее:
.copyDirectory('node_modules/font-awesome/fonts', 'public/fonts')
Ответ 11
Попробуйте в своем webpack.mix.js добавить '*'
.copy('node_modules/font-awesome/fonts/*', 'public/fonts')