Laravel asset compilation for Laravel 9 + Laravel Mix 6 + Font Awesome 6

Karl Hill
1 min readMar 10, 2022

--

This document provides help to get your Laravel 9 instance running with the latest versions of Laravel Mix and Font Awesome.

Steps

Before triggering Laravel Mix, we want Node.js and NPM installed on your machine. Let’s check by running the following commands.

node -v
npm -v

Install Node dependencies for Laravel Mix, Autoprefixer, and PostCSS.

npm install -D laravel-mix@latest postcss@latest autoprefixer@latest

Install the latest free version of Font Awesome via the npm package manager.

npm install -D @fortawesome/fontawesome-free

Next, build your Laravel Mix webpack.mix.js configuration.

const mix = require('laravel-mix');mix.setPublicPath('public');
mix.setResourceRoot('../');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
]);

The following dependency entry should now be in your package.json.

"devDependencies": {
"@fortawesome/fontawesome-free": "^6.0.0",

In /resources/css/app.css, import one or more styles depending on which icon set you are interested in using.

@import '~@fortawesome/fontawesome-free/css/fontawesome';
@import '~@fortawesome/fontawesome-free/css/regular';
@import '~@fortawesome/fontawesome-free/css/solid';
@import '~@fortawesome/fontawesome-free/css/brands';

Compile your assets and produce a minified, production-ready build.

npx mix -p

OR

npm run prod

Finally, reference your generated CSS file in your Blade template/layout.

<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}">

Happy Mixing!

--

--

Karl Hill

Full Stack Engineer at NASA. Volunteer at Smithsonian’s The Renwick Gallery, and former drummer of #GovernmentIssue. https://www.karlhill.com