webpack4.0新特新总览
- 环境
不再支持nodejs4及以下版本,源代码已经更新到更高的es版本
- 用法
- 现在你必须在(mode 或 --mode)选择其中之一,分别代表了生产环境和开发环境
- 生产环境允许各种优化手段去生成更优的bundle
- 开发环境允许注释以及提示并且允许使用eval devtool
- 生产环境不支持文件监视, 开发环境做了更快构建的优化
- 生产环境允许使用scope hoisting
- process.env.NODE_ENV 会被设置成开发环境或者生产环境(仅在build所生成的代码中)
- node模式将会禁止所有东西
- 语法
- import()总是会返回一个命名空间对象,commonJS模块被包裹在默认的导出中
- 如果你用commonJS语法使用import(), 这个可能会中断你的代码
- 配置
- 你不再需要下面这些插件
- NoEmitOnErrorsPlugin->optimization.noEmitOnErrors 默认会在生产环境中被导入
- ModuleConcatenationPlugin->optimization.concatenateModules 默认在生产环境中导入
- NamedModulesPlugin -> optimization.namedModules 默认在开发环境中导入
- CommonsChunkPlugin被移除,变为optimization.splitChunks, optimization.runtimeChunk
- 你不再需要下面这些插件
- JSON
- webpack现在自带处理JSON插件
- 你在通过loader将JSON转换给js的时候,可能需要增加type: "javascript/auto"
- 不带loader使用JSON应该仍然可以工作
- 允许通过js语法导入json
- webpack现在自带处理JSON插件
- 优化
- 更新uglifyjs-webpack-plugin到v1