Luc*_*pes 48 php laravel webpack laravel-5 laravel-mix
我尝试使用Laravel Mix安装Font Awesome,但在执行时run npm dev我收到以下消息:
错误在./~/font-awesome/scss/font-awesome.scss中编译时出现1错误错误.模块构建失败:/**^"加载样式"后的无效CSS:预期的1个选择器或at-规则是/var/www/html/blog/node_modules/font-awesome/scss/font-awesome.scss中的"var content = requi"(第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();
Run Code Online (Sandbox Code Playgroud)
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";
Run Code Online (Sandbox Code Playgroud)
_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...
Run Code Online (Sandbox Code Playgroud)
Kor*_*nel 88
要安装font-awesome,首先应该使用npm安装它.所以在你的项目根目录中输入:
npm install font-awesome --save
Run Code Online (Sandbox Code Playgroud)
(当然我假设你已经安装了node.js和npm.你已经npm install在你的项目根目录中完成了)
然后编辑该resources/assets/sass/app.scss文件并在此行的顶部添加:
@import "node_modules/font-awesome/scss/font-awesome.scss";
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
npm run dev
Run Code Online (Sandbox Code Playgroud)
这将在正确的文件夹中构建未分类的资源版本.如果你想缩小它们,你会改为运行:
npm run production
Run Code Online (Sandbox Code Playgroud)
然后你可以使用该字体.
Kar*_*ran 68
对于Font Awesome 5(带有css的webfont)和Laravel mixin添加字体真棒5的包
npm i --save @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)
并在app.scss或您的自定义scss文件中导入字体awesome scss
@import '~@fortawesome/fontawesome-free/scss/brands';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
Run Code Online (Sandbox Code Playgroud)
编译您的资产 npm run dev或npm run production将编译后的CSS包含在布局中
Kar*_*ill 39
对于Laravel 5.6和Font Awesome 5
构建webpack.mix.js配置.
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
Run Code Online (Sandbox Code Playgroud)
安装字体真棒.
npm install @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)
这一行现在应该在你的package.json中.
// Font Awesome
"dependencies": {
"@fortawesome/fontawesome-free": "^5.11.2",
Run Code Online (Sandbox Code Playgroud)
在/resources/sass/app.scss中导入一个或多个样式.
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/brands';
Run Code Online (Sandbox Code Playgroud)
让我们编译所有资产并生成生产就绪的构建.
npm run production
Run Code Online (Sandbox Code Playgroud)
最后,在布局中引用新的CSS文件.
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">
Run Code Online (Sandbox Code Playgroud)
Ram*_*avi 25
这适用于使用Laravel 5.7和Fontawesome 5.3的新用户
npm install @fortawesome/fontawesome-free --save
Run Code Online (Sandbox Code Playgroud)
在app.scss中
@import '~@fortawesome/fontawesome-free/css/all.min.css';
Run Code Online (Sandbox Code Playgroud)
跑
npm run watch
Run Code Online (Sandbox Code Playgroud)
在布局中使用
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
rap*_*2-h 15
npm install font-awesome --save@import "~font-awesome/scss/font-awesome.scss";在resources/assets/saas/app.scssnpm run dev(npm run watch或甚至npm run production)我使用的是 Laravel 5.5.14,但以上都不适合我。所以这是我为使其工作所做的步骤。
1. 使用 npm 安装 font-awesome:
npm install font-awesome --save
Run Code Online (Sandbox Code Playgroud)
2.通过在您的 webpack.mixin.js
mix.copyDirectory('node_modules/font-awesome/fonts', 'public/fonts/font-awesome');
Run Code Online (Sandbox Code Playgroud)
3.打开你的 app.scss 来指定你的 node_modules 中字体的路径和编译使用的相对路径:
$fa-font-path: "../fonts/font-awesome" !default;
@import "~font-awesome/scss/font-awesome.scss";
Run Code Online (Sandbox Code Playgroud)
首先使用npm安装fontawsome
npm install --save @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)
添加resources\sass\app.scss
// Fonts
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
Run Code Online (Sandbox Code Playgroud)
并添加到resources\js\app.js
npm install --save @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)
然后运行
npm run dev
Run Code Online (Sandbox Code Playgroud)
或者
npm run production
Run Code Online (Sandbox Code Playgroud)
Laravel 7 的解决方案
Run Code Online (Sandbox Code Playgroud)npm install font-awesome --save
<you_project_location>/resources/sass/app.scss
Run Code Online (Sandbox Code Playgroud)@import "~font-awesome/scss/font-awesome";
<you_project_location>/webpack.mix.js
Run Code Online (Sandbox Code Playgroud)mix.setResourceRoot("../");
npm 运行开发
或者
npm 运行生产
无需将字体文件夹复制粘贴到公共文件夹,一切都会自动处理。
Laravel 9 和 fontawesome 6.1
composer create-project laravel/laravel:^9 laravel-9
cd laravel-9
npm i --save-dev @fortawesome/fontawesome-free@^6.1.0
Run Code Online (Sandbox Code Playgroud)
创建文件resources/sass/app.scss
@import "@fortawesome/fontawesome-free/scss/fontawesome";
@import "@fortawesome/fontawesome-free/scss/regular";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/brands";
Run Code Online (Sandbox Code Playgroud)
替换webpack.mix.js为
@import "@fortawesome/fontawesome-free/scss/fontawesome";
@import "@fortawesome/fontawesome-free/scss/regular";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/brands";
Run Code Online (Sandbox Code Playgroud)
添加到您的视图
<script src="{{ mix('js/app.js') }}"></script>
<link rel="stylesheet" href="{{ mix('css/app.css') }}" />
Run Code Online (Sandbox Code Playgroud)
注意:正确完成后,字体文件会自动复制到该public目录。您不需要像许多答案中所看到的那样手动复制它们。
注意:如果您的 laravel 站点位于子文件夹 (http://domain/site/) 中,请确保添加mix_url到config/app.php
const mix = require('laravel-mix');
// set path to laravel public directory
//mix.setPublicPath('public');
// path to laravel public directory from public/css/app.css
mix.setResourceRoot("../");
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
Run Code Online (Sandbox Code Playgroud)
Dim*_*rey -4
尝试在 webpack.mix.js 中添加 '*'
.copy('node_modules/font-awesome/fonts/*', 'public/fonts')
Run Code Online (Sandbox Code Playgroud)