Tagged: javascript
升级到webpack4不完全指南
webpack在2018年2月25号发布最新的4.0版本, 更新了以下内容:
- 性能大幅提升(没感觉..)
- 新增mode配置, 可选择设置为development和production, 实现零配置启动(意义不大…)
- 废弃CommonsChunkPlugin, 使用optimize.splitChunks和optimization.runtimeChunk替代
- 支持WebAssembly
- 支持CommonJS, AMD, ESM等模块系统, 可以直接导入.mjs扩展名的模块文件, 对wasm模块也有实验性的支持
今天我将自己维护的React脚手架从webpack2升级到了4, 记录一下需要改动的地方. 本篇是”不完全指南”, 欢迎补充更多内容
升级依赖版本
- webpack: 2.2.1 -> 4.1.1
- webpack-dev-middleware: 1.10.0 -> 3.0.1
- html-webpack-plugin: 2.28.0 -> 3.0.6
- extract-text-webpack-plugin: 2.0.0 -> 4.0.0-beta.0
- copy-webpack-plugin: 4.0.1 -> 4.5.1
- react-hot-loader: 3.0.0-beta.7 -> 4.0.0
webpack config添加mode字段
|
|
删除UglifyJsPlugin插件
在mode: production下, 会自动进行代码压缩. 可以修改配置项 optimization.minimize: 'on'/'off' 控制是否启用, 修改配置项 optimization.minimizer: {} 调整默认行为
删除CommonsChunkPlugin插件
替代为配置项 optimization.splitChunks, 可配置内容如下:
最简单的配置
|
|
手动定制vendor内容
|
|
字符串或者正则匹配控制vendor内容
|
|
函数控制vendor内容
|
|
react-hot-loader
原来的写法是:
现在改为:
还有, 在webpack html-webpack-plugin-after-emit事件回调中, 删除 hotMiddleware.publish({ action: 'reload' }); 语句
引用内容
webpack@4.0.0 release log
webpack 4.0.0-alpha.5 feedback #6357
查看更多
兼容不支持HTML5 Blob的浏览器
查看更多
Javascript函数安全调用小技巧
查看更多
关于setTimeout / setImmediate / process.nextTick的区别
查看更多
在web中唤起APP并检查是否成功
代码
|
|
参考
http://www.cnblogs.com/lyre/p/6169028.html
http://blog.html5funny.com/2015/06/19/open-app-from-mobile-web-browser-or-webview/
查看更多
2017百度前端学院热身题非"主流"答案
查看更多