真的就是手痒才更新到2的…
更新
写此文时,webpack更新到2.1.0-beta.27。
首先运行更新命令:npm install webpack@2.1.0-beta.27 --save-dev
如果要全局更新就使用:npm install webpack@2.1.0-beta.27 --save-dev
更新完之后,webpack 2 兼容老版本的配置,所以直接运行是没有问题的。据说 webpack 2 的 tree-shaking 还可以优化体积。
迁移
去webpack官网扫了一眼,虽然v2兼容v1的,但v2修改了配置文件的语法。
https://webpack.js.org/guides/migrating/
列举影响最深的两条:
####
module.loaders
is nowmodule.rules
The old loader configuration was superseded by a more powerful rules system, which allows configuration of loaders and more. For compatibility reasons, the old module.loaders syntax is still valid and the old names are parsed. The new naming conventions are easier to understand and are a good reason to upgrade the configuration to using module.rules.####
module.loaders
更改为module.rules
旧版本的 loader 配置已经被更强大的 rules 取代,新的 rules 能够配置 loader 之外的更多选项。出于兼容考虑,旧的module.loaders
语法仍然能被解析。然而,新的命名规范更易理解,推荐将配置文件更新为使用module.rules
语法。
|
|
####Automatic
-loader
module name extension removed
It is not possible anymore to omit the-loader
extension when referencing loaders:####在模块名后自动补上 -loader 后缀的功能被移除
在引用 loader 时,再也不能省略-loader
后缀:
12345678 loaders: [- "style",+ "style-loader",- "css",+ "css-loader",- "less",+ "less-loader",]You can still opt-in to the old behavior with the
resolveLoader.moduleExtensions
configuration option.
你可以通过添加resolveLoader.moduleExtensions
配置项,继续使用以前的格式。
123 resolveLoader: {moduleExtensions: ["-loader"]}
愉快的改好webpack.config.js
,接下来开始曲折的趟坑之旅。
蹚坑
满心欢喜的build一发。
module: {
rules: [
{
test: /.jsx?$/,
loader: ‘babel-loader’,
exclude: /node_modules/,
options: {
‘presets’: [
[‘es2015’, {modules: false}],
‘react’
]
}
}
]
},
$ ./node_modules/webpack/bin/webpack.js
Hash: e2a6ffe6d35f21cf8167
Version: webpack 2.1.0-beta.27
Time: 3127ms
Asset Size Chunks Chunk Names
order.js.map 85 bytes 0 [emitted] order
order.js 1.46 kB 0 [emitted] order
login.js 1.54 kB 2 [emitted] login
lock.js 1.82 kB 3 [emitted] lock
issue.js 1.51 kB 4 [emitted] issue
approve.js 1.09 kB 5 [emitted] approve
common.js 728 kB 6 [emitted] common
myorder.js 1.33 kB 1 [emitted] myorder
myorder.js.map 87 bytes 1 [emitted] myorder
login.js.map 85 bytes 2 [emitted] login
lock.js.map 84 bytes 3 [emitted] lock
issue.js.map 85 bytes 4 [emitted] issue
approve.js.map 87 bytes 5 [emitted] approve
common.js.map 893 kB 6 [emitted] common
[189] multi common 64 bytes {6} [built]
+ 189 hidden modules
|
|
再 build 一把,一次OK:
老哥,稳。
后记
台上一分钟,台下十年功,博客写的6,其实找问题的时候真的想疯。然后,不看 github 真是太傻了,下次遇到问题一定要到全球最大的同性交友平台问问!
https://github.com/shama/webpack-stream/issues/125