我尝试使用WebPack 2.1.0 beta 8将AngularJS(Angular 1)应用程序升级到WebPack 2.2.0 RC3,但我遇到了ExtractTextPlugin问题。
我从以下开始,工作,设置:
module: {
...
loaders: [{
test: /\.(css|less)$/,
loaders: ExtractTextPlugin.extract('style', 'css!postcss!less')
}]
...
}
,
plugins: [
new ExtractTextPlugin('styles/index-[contenthash].css')
]
我的package.json中使用的版本是:
我的webpack配置还有一些其他的加载器和插件,但我目前只面临ExtractTextPlugin的问题。升级我的设置后,我最终得到以下代码:
module: {
...
rules: [{
test: /\.(css|less)$/,
use: ExtractTextPlugin.extract(['css', 'postcss', 'less'])
}]
...
}
,
plugins: [
new ExtractTextPlugin('styles/index-[contenthash].css')
]
此配置使用以下版本:
以上配置导致以下例外情况:
> ./src/index.less中的错误模块解析失败: d:\ node_modules \提取文本-的WebPack-插件\ loader.js {"省略" 0"删除":真正}?!风格装载机CSS- !装载机postcss装载机不太装载机d:!... \ SRC \ index.less 出乎意料的人物' @' (3:0)你可能需要一个合适的装载机 处理此文件类型。 | / * 1.导入供应商样式 / | | @进口 ' ./ index.vendor.less&#39 ;; | | / 2.导入一般样式* / @ ./src/index.ts 24:0-23 @ multi app > ./~/animate.css/animate.css中的错误 模块解析失败:D:... \ node_modules \ animate.css \ animate.css 出乎意料的人物' @' (1:0) 您可能需要适当的加载程序来处理此文件类型。 | @charset" UTF-8&#34 ;; | | / *!错误 ./~/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css 模块解析失败:D:... \ node_modules \ bootstrap-material-datetimepicker \ css \ bootstrap-material-datetimepicker.css 意外的令牌(1:0) 您可能需要适当的加载程序来处理此文件类型。 | .dtp {position:fixed;顶部:0;左:0;右:0;底部: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;最大宽度:300px; box-shadow:0 2px 5px 0 rgba(0,0,0,106),0 2px 10px 0 rgba(0,0, 0,0.12);最大高度:520px;位置:相对;左:50%; } | .dtp> .dtp-content> .dtp-date-view> header.dtp-header {background:#689F38;颜色:#fff; text-align:center;填充: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
重现的步骤:
我还添加了第二个配置文件,但没有ExtractTextPlugin:
对于我在这里失踪的任何指导表示赞赏!
提前致谢。
答案 0 :(得分:0)
它似乎与ExtractWebpackPlugin存在问题,应该已使用最新版本修复:https://github.com/webpack/extract-text-webpack-plugin/releases/tag/v2.0.0-beta.5。
我在beta5
文件中使用以下语法将ETP升级到webpack.config
时,验证了我上面提到的重现应用是否有效:
{
test: /\.(css|less)$/,
loader: ExtractTextPlugin.extract(["css-loader", "postcss-loader", "less-loader"])
}
以及使用以下语法
{
test: /\.(css|less)$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: "style-loader",
loader: ["css-loader", "postcss-loader", "less-loader"]
})
},