网站首页 > 开源技术 正文
2018年8月25号webpack4正式发布。再次之后只要使用npm install webpack命令,默认安装的就是版本4。在不知道情况下,像我一样的小白就会跳入各种坑中。接下来我说说版本4与以前版本的区别之处。
如何查看当前的webpack版本:
//控制台输出
webpack -v
一、mode的变化
了解 mode 工作机制。
webpack4中增加了mode 的选项:
module.exports = { mode: 'production'//development,none };
也可以在CLI参数中传递
webpack --mode=production
支持以下字符串值:
development
会将 process.env.NODE_ENV 的值设为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin。
production会将 process.env.NODE_ENV 的值设为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 UglifyJsPlugin.
记住,只设置 NODE_ENV,则不会自动设置 mode。
webpack.config.js中去掉了一些插件,选择production模式会默认使用:
module.exports = {
// ...
plugins: [
- new NoEmitOnErrorsPlugin(),
- new ModuleConcatenationPlugin(),
- new DefinePlugin({ "process.env.NODE_ENV": JSON.stringify("production") })
- new UglifyJsPlugin()
],
}
当你选择development时:
module.exports = {
// ...
plugins: [
- new NamedModulesPlugin()
],
}
被弃用的插件(4中已删除的):
module.exports = {
// ...
plugins: [
- new NoErrorsPlugin(),
- new NewWatchingPlugin()
],
}
二、webpack4 去掉了 CommonsChunkPlugin
解释:CommonsChunkPlugin主要是用来提取第三方库和公共模块,避免首屏加载的bundle文件或者按需加载的bundle文件体积过大,从而导致加载时间过长,着实是优化的一把利器。
CommonsChunkPlugin删除后,改成使用optimization.splitChunks进行模块划分,详细文档看这里。
官方的说法是默认设置已经对大部分用户来说非常棒了,但是需要注意一个问题,默认配置只会对异步请求的模块进行提取拆分,如果要对entry进行拆分,需要设置optimization.splitChunks.chunks = 'all'。
三、UglifyJsPlugin弃用
用途:uglifyJsPlugin 用来对js文件进行压缩,从而减小js文件的大小,加速页面load速度。
if(isProduction){
module.exports.plugins.push(
new webpack,optimize.UglifyJsPlugin({sourceMap:true})
)
}
webpack4中,也不需要使用这个plugin了,只需要使用optimization.minimize为true就行,production mode下面自动为true,optimization.minimizer可以配置你自己的压缩程序
用法:
module.exports = {
// ...
optimization: {
minimize:false
}
}
四、import() and CommonJS 的变化
non-esm.js
module.exports = {
sayHello: () => {
console.log('hello world');
}
};
example.js
function sayHello() {
import('./non-esm.js').then(module => {
module.default.sayHello();
});
}
关注我,了解更多前端面试题~
- 上一篇: 深入剖析webpack——webpack 基础
- 下一篇: 前端笔记-Webpack(前端笔记整理)
猜你喜欢
- 2024-10-18 提升网站前端性能的 8 大技巧(如何提高前端技术)
- 2024-10-18 前端面试题《webpack》(2021web前端经典面试题)
- 2024-10-18 2020 的第一波面试题(理论部分)总结1
- 2024-10-18 在前端开发中一些常用的webpack优化和相关原理
- 2024-10-18 前端笔记-Webpack(前端笔记整理)
- 2024-10-18 深入剖析webpack——webpack 基础
- 2024-10-18 15个最好用的JavaScript代码压缩工具
- 2024-10-18 带你揭开神秘的Javascript AST面纱之Babel AST 四件套的使用方法
- 2024-10-18 走向高薪之路:Web前端面试的10道经典题(附答案)
- 2024-10-18 代码混淆分析(代码混淆器是干什么的)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)