2017-06-06 2 views
0

Je n'arrive pas à comprendre pourquoi mes tests de chargeur échouent.Test de regex Webpack 2 échoué

Mon objectif:

Test 1:

rien match qui est pas soit global.css ou global.scss

Test 2

Seulement correspondance soit global.scss ou global.css


Raison d'être est que je ne veux pas de fichiers nommés global à passer à travers les module des options

On dirait que mon premier test est de laisser globale bien. Je peux voir mes deux regex retournent correctement vrai/faux en utilisant des outils tels que https://regex101.com/.

Est-ce que cela pourrait être mon include?

Aide! :)

webpack.config.js

 { 

      test: /^(?!global\.s?css$).*\.s?css$/, 
      include: SRC_DIR, 
      use: extractPlugin.extract({ 
       use: [ 
        { 
         loader: 'css-loader', 
         options: { 
          modules: true, 
          camelCase: true 
         } 
        }, 
        { 
         loader: 'postcss-loader', 
         options: { 
          plugins: (loader) => [require('autoprefixer')()] 
         } 
        }, 
        'resolve-url-loader', 
        { 
         loader: 'sass-loader', 
         options: { sourceMap: true } 
        } 
       ] 
      }) 
     }, 

     { 

      test: /^global\.s?css$/, 
      include: SRC_DIR, 
      use: extractPlugin.extract({ 
       use: [ 
        'css-loader', 
        { 
         loader: 'postcss-loader', 
         options: { 
          plugins: (loader) => [require('autoprefixer')()] 
         } 
        }, 
        'resolve-url-loader', 
        { 
         loader: 'sass-loader', 
         options: { sourceMap: true } 
        } 
       ] 
      }) 
     } 
+1

Les tests s'attendent à trouver le chemin complet du fichier, comme 'path/to/global.scss', et pas seulement 'global.scss'. – crossjs

+0

si c'est le cas alors pourquoi est-ce que 'test:/\. (Css | scss) $ /' travail? – Samuel

Répondre

0

Pour l'essai 2 essai laissant tomber le ^ de votre regex. Les tests sont comparés au chemin d'accès au fichier, pas seulement au nom du fichier, donc le fait de le démarrer depuis le début du chemin le fera échouer.

Pour le test 1, vous pouvez simplifier ce modèle négatif en utilisant test: \/.s?css$\ pour capturer tous les styles, puis ajouter exclude: \global.s?css$\ pour empêcher l'inclusion globale.

+0

Merci! parfait. – Samuel