How do I load font-awesome using SCSS (SASS) in Webpack using relative paths?

前端 未结 9 2175
有刺的猬
有刺的猬 2020-12-07 16:20

I have font-awesome in my node_modules folder so I try to import it in my main .scss file like so:

@import \"../../node_modules/font-awesome/scss/font-awesom         


        
9条回答
  •  时光说笑
    2020-12-07 16:54

    What worked for me was to add resolve-url-loader and enable sourceMaps

    I already imported font-awesome in my root .scss file:

    @import "~font-awesome/scss/font-awesome";
    ...
    

    This root file is imported in my main.js file defined as Webpack's entrypoint:

    import './scss/main.scss';
    ...
    

    Then my final webpack module rules look like so:

     ...
     {
        test: /\.(sa|sc|c)ss$/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
          { loader: 'postcss-loader', options: { sourceMap: true }, },
          'resolve-url-loader',
          { loader: 'sass-loader', options: { sourceMap: true }, },
        ],
      }, {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: { limit: 1000, name: 'fonts/[name].[ext]', },
      }
      ...
    

    Note:

    I used mini-css-extract-plugin, which can be registered like this:

    new MiniCssExtractPlugin({
        filename: 'css/main.css',
        chunkFilename: '[id].[hash]',
    }),
    

    url-loader requires file-loader to be installed, so if you get an error like: cannot find module file-loader, then just install it:

    npm i -D file-loader
    

    Useful Links:

    https://github.com/webpack/webpack/issues/2771#issuecomment-277514138 https://github.com/rails/webpacker/issues/384#issuecomment-301318904

提交回复
热议问题