Sass chargeur ne fonctionne pas dans le webpack
J'essaie de le faire *.scss fichiers pris en charge dans mon webpack de configuration, mais je reçois le message d'erreur suivant lorsque je lance le webpack commande de construction:
ERROR in ./~/css-loader!./~/sass-loader!./app/styles.scss
Module build failed: TypeError: Cannot read property 'sections' of null
at new SourceMapConsumer (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js:23:21)
at PreviousMap.consumer (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/previous-map.js:37:34)
at new Input (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/input.js:42:28)
at parse (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/parse.js:17:17)
at new LazyResult (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/lazy-result.js:54:47)
at Processor.process (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/processor.js:30:16)
at processCss (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/lib/processCss.js:168:24)
at Object.module.exports (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/lib/loader.js:21:15)
@ ./app/styles.scss 4:14-117
Je ne peux pas pour la vie de me comprendre pourquoi. C'est un très configuration de base.
J'ai créé un dropbox partager avec le strict minimum pour illustrer cela:
https://www.dropbox.com/s/quobq29ngr38mhx/webpack.sass.test.zip?dl=0
Décompressez ce lancer:
npm install
webpack
Voici mon webpack.config.js fichier:
var path = require('path')
var webpack = require('webpack')
module.exports = {
devtool: 'eval',
entry: [
'./app'
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'index.js',
publicPath: '/dist/'
},
plugins: [
new webpack.NoErrorsPlugin()
],
resolve: {
extensions: ['', '.js']
},
module: {
loaders: [{
test: /\.scss$/,
loader: 'style-loader!css-loader!sass-loader'
}]
}
}
Et la index.js entrée de fichier:
require('./styles.scss');
alert('foo bar baz');
Et les styles.scss fichier:
body {
background-color: #000;
}
Il semble suivre les recommandations de la sass-chargeur de documents site, mais je ne peux pas le faire fonctionner.
🙁
D'informations sur mon environnement:
node - 0.12.4
npm - 2.10.1
os - OS X Yosemite
- J'ai eu le même problème
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à obtenir une autre solution de travail qui n'implique pas de modification du css-chargeur de bibliothèques au sein de mon npm_modules répertoire (comme par la réponse par @chriserik).
Si vous ajoutez '?sourceMap " pour le sass chargeur de la css chargeur semble gérer la sortie.
Voici ma configuration mise à jour:
P. S. j'ai même étendu ce test pour inclure une boussole-mixin comprendre, et cela a fonctionné aussi.
Après avoir eu le même problème, j'ai trouvé ceci: https://github.com/webpack/css-loader/issues/84
Apparemment, la seule solution est de modifier manuellement les lignes 17-19 d' /node_modules/css-loader/lib/loader.js avec
Le problème est résolu pour moi.
Le problème est résolu par la mise en
source-map
option à true (comme vu dans d'autres réponses).Mais dans le cas où vous trouvez désordre options de passage dans la chaîne de requête, il est un autre;
pour la configuration de la sass chargeur vous pouvez créer un
sassLoader
propriété dans le webpack objet de config: