For some reason there is a whole thread on this seemingly simple tasks. In a bootstrapped Laravel 5.4 instance the following worked for me.
npm install font-awesome
// resources/assets/sass/app.scss
// Font Awesome
@import "node_modules/font-awesome/scss/font-awesome";
Add the following to your elixir config in the gulpfile.
.copy('node_modules/font-awesome/fonts', 'public/fonts')
If you run gulp
you should be able to now start using font-awesome everywhere in your app.
If font awesome works locally but displays empty squares when you deploy, try this:
Font Awesome was working for me in my development environment. I pushed to Github and then deployed with Laravel Forge. Opening my browser, font awesome icons were replaced with empty squares. I opened the developers tools/network tab in my browser and there was a "404 not found error" for the font awesome .woff files. By default, a Laravel project will .gitignore any folder named "vendor". When you use mix or gulp to compile, it will likely create a directory in your public folder: fonts/vendor/@FortAwesome.
Using the above git command will force git to add the public/fonts/vendor folder.