2017-10-19 2 views
1

SASS-loader J'ai cette configuration travailler sur un projet plus ancien avec:Webpack 3, extrait plugin texte ne résout pas includePaths

[email protected] 
[email protected] 

J'essaie maintenant sur un nouveau projet ont donc mis à niveau:

[email protected] 
[email protected] 

Webpack config est exactement le même mais maintenant je reçois des erreurs. J'utilise node-bourbon et je veux le rendre disponible dans toutes mes entrées plutôt que de l'importer à chaque fois.

Je dispose d'un fichier de SCSS: stylesheets/outils/mixins/bourbon.scss qui (devrait) simplement importer bourbon: @import 'bourbon';

Ensuite, j'utilise SASS-ressources chargeur pour faire ce (avec quelques-uns autres mixins) disponibles sur tous les modules (voir la configuration ci-dessous).

config webpack: { test: /\.scss$/, use: ExtractTextPlugin.extract({ use: [ ... { loader: "sass-loader", options: { sourceMap: true, includePaths: require('bourbon').includePaths } }, { loader: 'sass-resources-loader', options: { resources: [ './frontend/stylesheets/settings/*.scss', './frontend/stylesheets/tools/**/*.scss' ] }, }, ] }) },

Cependant, la déclaration d'importation dans le fichier SCSS ne résout pas à node_modules, il essaie de se référencer si je reçois cette erreur: Module build failed: @import 'bourbon'; ^ An @import loop has been found:

Il semble que les includePaths pour le noeud -bourbon sont ignorés?

MISE À JOUR:

J'ai réussi à travailler autour pour l'instant en faisant référence bourbon directement: @import '~bourbon/app/assets/stylesheets/_bourbon';

Pas idéal, mais il fait le travail. Il est intéressant quand j'inclus bourbon @import 'bourbon'; dans un fichier qui n'est pas déclaré dans le sass-resources-loader cela fonctionne. Peut-être que ExtractTextPlugin ne transmet pas les includePaths de sass-loader aux modules référencés dans sass-resource-loader.

Répondre

1

Je ne suis pas positif mais je crois que includepaths doit être un tableau, même s'il n'y a qu'une seule entrée.

Aussi bourbon et bourbon-neat sont les pagkages officiels de sorte que vous pouvez avoir plus de chance avec ceux-ci et non node-bourbon.

Modifier pour clarifier:

Vous devez saisir les suivantes pour les options →

  options: { 
       sourceMap: true, 
       includePaths: [require('bourbon').includePaths] 
      } 
+1

Merci pour votre réponse. Vous avez raison qu'il doit être un tableau, mais retourne un tableau bourbon ce qui devrait être bien: '' 'module.exports = { includePaths: [ path.join (__ dirname, « app/assets/feuilles de style ') ] }; '' '. J'ai réussi à trouver une solution de contournement pour l'instant, ne vous inquiétez pas. –