Search code examples
ruby-on-railsrubywebpackyarnpkg

Rails: Installing font-awesome in Rails 6.0.0-rc1 with webpacker and yarn


I'm trying to install FontAwesome via yarn by doing yarn add @fontawesome/fontawesome-free, and then adding it to my application.scss:

$fa-font-path: '~@fortawesome/fontawesome-free-webfonts/webfonts';
@import '~@fortawesome/fontawesome-free-webfonts/scss/fontawesome';
@import '~@fortawesome/fontawesome-free-webfonts/scss/fa-solid';

I have tried several things to write in the application.scss that I've seen through the internet, but none of them works, as I get the following error:

Sass::SyntaxError in Pages#index
Showing /Users/foo/dev/project/app/views/layouts/application.html.erb where line #9 raised:

File to import not found or unreadable: ~@fortawesome/fontawesome-free-webfonts/scss/fontawesome.
Load paths:
  /Users/foo/dev/project/app/assets/images
  /Users/foo/dev/project/app/assets/javascripts
  /Users/foo/dev/project/app/assets/stylesheets
  /Users/foo/dev/project/vendor/bundle/ruby/2.5.0/gems/coffee-rails-5.0.0/lib/assets/javascripts
  /Users/foo/dev/project/vendor/bundle/ruby/2.5.0/gems/actioncable-6.0.0.rc1/app/assets/javascripts
  /Users/foo/dev/project/vendor/bundle/ruby/2.5.0/gems/activestorage-6.0.0.rc1/app/assets/javascripts
  /Users/foo/dev/project/vendor/bundle/ruby/2.5.0/gems/actionview-6.0.0.rc1/lib/assets/compiled
  /Users/foo/dev/project/node_modules

Solution

  • You need to remove the ~ sign at the start of your imports and it should work fine.

    It should be something like this:

    $fa-font-path: '@fortawesome/fontawesome-free-webfonts/webfonts';
    @import '@fortawesome/fontawesome-free-webfonts/scss/fontawesome';
    @import '@fortawesome/fontawesome-free-webfonts/scss/fa-solid';