可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I've tried to install Font Awesome using Laravel Mix but when executing run npm dev
I get the following message:
ERROR Failed to compile with 1 errors
error in ./~/font-awesome/scss/font-awesome.scss Module build
failed: /** ^ Invalid CSS after "...load the styles": expected 1
selector or at-rule, was "var content = requi" in
/var/www/html/blog/node_modules/font-awesome/scss/font-awesome.scss
(line 1, column 1)
I removed the comments in the file and tried to change font paths but it did not solve the problem.
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:
To install font-awesome you first should install it with npm. So in your project root directory type:
npm install font-awesome --save
(Of course I assume you have node.js and npm already installed. And you've done npm install
in your projects root directory)
Then edit the resources/assets/sass/app.scss
file and add at the top this line:
@import "node_modules/font-awesome/scss/font-awesome.scss";
Now you can do for example:
npm run dev
This builds unminified versions of the resources in the correct folders. If you wanted to minify them, you would instead run:
npm run production
And then you can use the font.
回答2:
For Font Awesome 5(webfont with css) and Laravel mixin add package for font awesome 5
npm i --save @fortawesome/fontawesome-free
And import font awesome scss in app.scss or your custom scss file
@import '~@fortawesome/fontawesome-free/scss/brands';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
compile your assets npm run dev
or npm run production
and include your compiled css into layout
回答3:
For Laravel >= 5.5
- Run
npm install font-awesome --save
- Add
@import "~font-awesome/scss/font-awesome.scss";
in resources/assets/saas/app.scss
- Run
npm run dev
(or npm run watch
or even npm run production
)
回答4:
For Laravel 5.6 and Font Awesome 5
Build your webpack.mix.js configuration.
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
Install Font Awesome.
npm install @fortawesome/fontawesome-free
This line should now be in your package.json.
// Font Awesome
"dependencies": {
"@fortawesome/fontawesome-free": "^5.7.1",
In /resources/sass/app.scss import one or more styles.
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/brands';
Let's compile all our assets and produce a production-ready build.
npm run production
Finally, reference your new CSS file in your layout.
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">
回答5:
This is for new users who are using Laravel 5.7 and Fontawesome 5.3
npm install @fortawesome/fontawesome-free --save
and in app.scss
@import '~@fortawesome/fontawesome-free/css/all.min.css';
Run
npm run watch
Use in layout
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
回答6:
I have recently written a blog about it for the Laravel5.6. Link to blog is https://www.samundra.com.np/integrating-font-awesome-with-laravel-5.x-using-webpack/1574
The steps are similar to above description. But in my case, I had to do extra steps like configuring the webfonts path to font-awesome in "public" directory. Setting the resource root in Laravel mix etc. You can find the details in the blog.
I am leaving the link here so it helps people for whom the mentioned solutions don't work.
回答7:
I am using Laravel 5.5.14 and none of the above worked for me. So here are the steps I did to make it work.
1.Install font-awesome by using npm:
npm install font-awesome --save
2.Move the fonts to your public directory by adding this line in your webpack.mixin.js
mix.copyDirectory('node_modules/font-awesome/fonts', 'public/fonts/font-awesome');
3.Open your app.scss to specify the path of the fonts in your node_modules and which relative path to use for compilation:
$fa-font-path: "../fonts/font-awesome" !default;
@import "~font-awesome/scss/font-awesome.scss";
回答8:
npm install font-awesome --save
add ~/ before path
@import "~/font-awesome/scss/font-awesome.scss";
回答9:
Try in your webpack.mix.js to add the '*'
.copy('node_modules/font-awesome/fonts/*', 'public/fonts')