Import CSS from “node_modules” in Webpack

后端 未结 3 474
遇见更好的自我
遇见更好的自我 2020-12-30 18:43

Some third-party modules I\'m using have their own CSS files. I\'d like to include them in my app\'s one, single CSS file, which is processed by Webpack. How can CSS files u

相关标签:
3条回答
  • 2020-12-30 19:13

    If you are using too many things from one node_modules folder you can also create an alias by passing this following option

    options: {
        url: false,
        includePaths: [
            // this one for using node_modules as a base folder
            path.resolve('node_modules'),
            // this one for using sass as the base folder
            path.resolve('node_modules/flag-icon-css/sass')
        ]
    }
    

    After the configuration, you can import as you were trying in your question.

    0 讨论(0)
  • 2020-12-30 19:13

    I had a similar issue today. After all, all I had to do was to configure resolve in my webpack config file. I hope this will help somebody.

    Webpack version I used:

    "webpack": "^4.37.0",
    

    In a webpack config file, the following should be configured:

    module.exports = {
      resolve: {
        extensions: ['.json', '.js', '.jsx'],
        modules: ['node_modules'],
      },
    

    or

    module.exports = {
      resolve: {
        alias: {
          'some-library': path.resolve(__dirname, './node_modules/some-library'),
        }
      },
    

    In a css file, we can access a library by a relative path from node_modules:

    @import '~some-library/src/some-css-file';
    
    0 讨论(0)
  • 2020-12-30 19:30

    You can import files relative to your project's root (resolving node_modules/ from the root folder) by prefixing with a tilde ~:

    @import '~react-select/dist/react-datetime.css';
    

    This is a poorly documented Webpack (a redundant phrase) convention, see https://github.com/webpack-contrib/css-loader/issues/12#issuecomment-41940311 and What does a `~` tilde in a CSS `url()` do?

    0 讨论(0)
提交回复
热议问题