我从以下工作设置开始:
module: {
...
loaders: [{
test: /\.(css|less)$/,
loaders: ExtractTextPlugin.extract('style', 'css!postcss!less')
}]
...
}
,
plugins: [
new ExtractTextPlugin('styles/index-[contenthash].css')
]
我的package.json中使用的版本是:
- "css-loader": "^0.23.1"
- "less-loader": "^2.2.2"
- "postcss-loader": "^0.9.1"
- "style-loader": "^0.13.0",
- "extract-text-webpack-plugin": "^1.0.1"
- "webpack": "2.1.0-beta.8"
module: {
...
rules: [{
test: /\.(css|less)$/,
use: ExtractTextPlugin.extract(['css', 'postcss', 'less'])
}]
...
}
,
plugins: [
new ExtractTextPlugin('styles/index-[contenthash].css')
]
这个配置使用以下版本:
- "css-loader": "^0.26.1"
- "less-loader": "^2.2.3"
- "postcss-loader": "^1.2.1"
- "style-loader": "^0.13.1"
- "extract-text-webpack-plugin": "2.0.0-beta.4"
- "webpack": "2.2.0-rc.3"
上述的配置会导致以下异常:
ERROR in ./src/index.less 模块解析失败: D:...\node_modules\extract-text-webpack-plugin\loader.js?{"omit":0,"remove":true}!style-loader!css-loader!postcss-loader!less-loader!D:...\src\index.less 意外字符 '@' (3:0) 您可能需要适当的加载器来处理此文件类型。 | /* 1. 导入供应商样式 / | | @import './index.vendor.less'; | | / 2. 导入通用样式 */ @ ./src/index.ts 24:0-23 @ multi app
ERROR in ./~/animate.css/animate.css 模块解析失败: D:...\node_modules\animate.css\animate.css 意外字符 '@' (1:0) 您可能需要适当的加载器来处理此文件类型。 | @charset "UTF-8"; | | /*!
ERROR in ./~/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css 模块解析失败: D:...\node_modules\bootstrap-material-datetimepicker\css\bootstrap-material-datetimepicker.css 意外标记 (1:0) 您可能需要适当的加载器来处理此文件类型。 | .dtp { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); z-index: 2000; font-size: 15px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } | .dtp > .dtp-content { background: #fff; max-width: 300px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); max-height: 520px; position: relative; left: 50%; } | .dtp > .dtp-content > .dtp-date-view > header.dtp-header { background: #689F38; color: #fff; text-align: center; padding: 0.3em; }
除了上述加载器配置,我还尝试了以下配置,但也没有成功:
use: ExtractTextPlugin.extract(['style-loader', 'css-loader', 'postcss-loader','less-loader'])
use: ExtractTextPlugin.extract({
fallbackLoader: "style-loader",
loader: "css-loader!less-loader"
})
我已经删除了我的node_modules文件夹并从头开始安装了所有内容,但这并没有帮助。
注意:删除ExractTextPlugin配置并用以下配置替换确实允许我成功构建应用程序,所以我可以说我的webpack配置已经成功迁移!
{
test: /\.(css|less)$/,
use: [
'style-loader',
'css-loader',
'postcss-loader',
'less-loader'
]
}
我已经上传了一个样本以重现该问题:https://dl.dropboxusercontent.com/u/87239305/webpack-less.zip 重现步骤:
1. npm install 2. node_modules\.bin\webpack.cmd --config conf\webpack.conf.js
我还添加了第二个配置文件,它可以正常工作,没有使用ExtractTextPlugin:
1. node_modules\.bin\webpack.cmd --config conf\webpack.conf2.js
欢迎提供任何关于我所缺少的内容的指导!
先行致谢。