Fil*_*lth 4 sass reactjs webpack extract-text-plugin
我正在尝试在我的React + Webpack项目上运行SASS编译并继续遇到此错误:
Module build failed: Error: "extract-text-webpack-plugin" loader is used without the corresponding plugin
Run Code Online (Sandbox Code Playgroud)
遵循本教程中的指导原则:链接
这是我的webpack.config.js
有什么建议?
const debug = process.env.NODE_ENV !== "production";
const webpack = require('webpack');
const path = require('path');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
context: path.join(__dirname, "src"),
devtool: debug ? "inline-sourcemap" : null,
entry: "./js/client.js",
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-0'],
plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy'],
}
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('css!sass')
}
]
},
output: {
path: __dirname + "/src/",
filename: "client.min.js"
},
plugins: debug ? [] : [
new ExtractTextPlugin('dist/styles/main.css', {
allChunks: true
}),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
],
};
Run Code Online (Sandbox Code Playgroud)
如果NODE_ENV不是production,则不包含任何插件.
plugins: debug ? [] : [
new ExtractTextPlugin('dist/styles/main.css', {
allChunks: true
}),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
],
Run Code Online (Sandbox Code Playgroud)
所以什么时候debug是真的,你会有
plugins: []
Run Code Online (Sandbox Code Playgroud)
但是你仍然在.scss装载机中使用它.
要解决它,你也可以将它添加到这些插件中(所以你没有像这样的生产插件UglifyJsPlugin):
plugins: debug
? [
new ExtractTextPlugin("dist/styles/main.css", {
allChunks: true
})
]
: [
new ExtractTextPlugin("dist/styles/main.css", {
allChunks: true
}),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false })
]
Run Code Online (Sandbox Code Playgroud)
或者你不使用ExtractTextPlugin你的.scss加载器(这不会将它们提取到开发中的css文件):
{
test: /\.scss$/,
loader: debug ? 'css!sass' : ExtractTextPlugin.extract('css!sass')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3352 次 |
| 最近记录: |