webpack中的JSON.stringify('production')从何而来

2019-05-2592次阅读webpackvue

这个不得不说起webpack DefinePlugin插件,它允许您创建在编译时配置的全局常量。其中process.env.NODE_ENV替换为字符串字面量同时可以让UglifyJS之类的压缩工具完全丢掉仅供开发环境的代码块,以减少最终的文件大小。

在webpack 4+中,你可以使用mode选项:

module.exports = {
  mode: 'production'
}

Webpack4模式(mode)及production内置优化说到:

可以看出最终还是DefinePlugin插件在起作用。所以DefinePlugin插件完全可以做到忽略webpack4+的mode选项


但是在webpack 3及其更低版本中没有mode选项,你需要手动使用 DefinePlugin:

var webpack = require('webpack')

module.exports = {
  // ...
  plugins: [
    // ...
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify('production')
      }
    })
  ]
}

 

上一篇: vue中mixins和extends的妙用  下一篇: JavaScript中Truthy(真值)  

webpack中的JSON.stringify('production')从何而来相关文章