2017-09-06 5 views
0

J'essaie d'extraire tous les fichiers CSS trouvés dans le répertoire node_modules dans un seul fichier. Ma config est Webpack comme suit:Comment inclure tous les fichiers CSS dans node_modules à construire par css-loader?

{  // node_modules css in /node_modules/**/*.css 
    test: /\.css$/, 
    include: /node_modules/, 
    // extract to the node modules css file 
    use: ExtractTextPluginNodeMods.extract({ 
     fallback: 'style-loader', 
     use: [ 
     { 
      loader: 'css-loader', 
      options: { 
      modules: false, 
      }, 
     }, 
     ], 
    }), 
} 

Malheureusement, aucun des fichiers CSS dans le répertoire node_modules sont en cours regroupés dans le fichier spécifié avec ExtractTextPluginNodeMods. J'ai une autre instance ExtractTextPlugin qui extrait avec succès le CSS de mon répertoire src. Une idée de pourquoi je ne peux pas obtenir l'extraction de CSS de node_modules?

Pour référence, mon autre ExtractTextPlugin/config Webpack (qui est le regroupement tous mon CSS est ici:

{ 
    // OUR css in /src/ 
    // the css output from sass loader will be caught here 
    // fonts are imported by css loader 
    // after transpiling of sass -> css, css-loader in webpack should take care of this 
    // https://github.com/webpack-contrib/css-loader 
    test: /\.css$/, 
    exclude: /node_modules/, 
    // extract to our css file 
    use: ExtractTextPluginSrc.extract({ 
     fallback: 'style-loader', 
     use: [ 
     { 
      loader: 'css-loader', 
      // create modular css with the '[name]__[local]___[hash:base64:5]' 
      options: { 
      modules: true, 
      localIdentName: '[name]__[local]___[hash:base64:5]', 
      }, 
     }, 
     'postcss-loader', 
     ], 
    }), 
    } 

Répondre

0

Webpack ne comprend pas les fichiers CSS, sauf si vous les importez explicitement à partir de votre code javascript . vous aurez besoin:

import 'some_package/css/component.css'; 

dans la partie de votre application qui utilise le CSS

Alternat. ivement vous pouvez utiliser quelque chose comme glob-chargeur pour faire

import 'glob-loader?node_modules_pattern_file'; 

et ensuite votre « node_modules_pattern_file » comprennent un glob comme

../node_modules/**/*.css 

... mais je ne recommande pas cette approche parce que vous ll finira par tirer des tas de fichiers dont vous n'avez pas besoin et il sera difficile à maintenir.