NODE_ENV === 'production' 之外的缩小代码。这意味着 Redux 的开发构建速度较慢

Posted

技术标签:

【中文标题】NODE_ENV === \'production\' 之外的缩小代码。这意味着 Redux 的开发构建速度较慢【英文标题】:Minified code outside of NODE_ENV === 'production'. This means slower development build of ReduxNODE_ENV === 'production' 之外的缩小代码。这意味着 Redux 的开发构建速度较慢 【发布时间】:2017-01-01 00:49:54 【问题描述】:

所以这是完整的错误: 您当前正在使用 NODE_ENV === 'production' 之外的缩小代码。这意味着您正在运行一个较慢的 Redux 开发版本。

我正在使用第 3 方图表库 CanvasJS,它需要访问全局范围。当我在我的任何模块中导入它时,实际代码似乎在浏览器中中断(可能是this 问题)。

我通过使用 Webpack 解决了这个问题,并让 gulp 将 bundle.min.js 与缩小的 Charting 库捆绑在一起。

在我尝试生产构建之前,这工作得很好。我认为对 CanvasJS 的引用可能在此过程中被破坏了。

我的 Webpack.config 文件:

 var debug = process.env.NODE_ENV !== "production";
 var webpack = require('webpack');
 var path = require('path');

 module.exports = 
  context: path.join(__dirname, "public"),
  devtool: debug ? "inline-sourcemap" : null,
  entry: "./js/main.js",
  resolve: 
   alias: 
    'react': 'react-lite',
    'react-dom': 'react-lite'
   
  , 
  module: 
  loaders: [
    
     test: /\.jsx?$/,
     exclude: /(node_modules|bower_components)/,
     loader: 'babel-loader',
     query: 
       presets: ['react', 'es2015', 'stage-0'],
       plugins: [ 'transform-class-properties', 'transform-decorators-legacy'],
     
   
 ]
,
output: 
  path: __dirname + "/public/build/",
  filename: "bundle2.min.js"
,
plugins: debug ? [] : [
  new webpack.optimize.DedupePlugin(),
  new webpack.optimize.OccurenceOrderPlugin(),
  new webpack.optimize.UglifyJsPlugin(),
  //  new webpack.optimize.AggressiveMergingPlugin()
  new webpack.optimize.UglifyJsPlugin( mangle: false, sourcemap: false ),
],
;

我尝试将 CanvasJS 标记为外部,但这也不起作用。如何让 Redux 不“运行缓慢”,并引用全局对象?

【问题讨论】:

【参考方案1】:

你需要添加:

  new webpack.DefinePlugin(
    'process.env': 
      'NODE_ENV': JSON.stringify('production')
    
  )

用于您的生产配置

【讨论】:

我在所有环境中都收到此错误。我尝试了您的 Dmitriy 无济于事。很好奇为什么在我的所有环境中都会发生这种情况。 或者,您可以使用webpack -p。这也将启用 UglifyJSPlugin。 check 的位置供好奇者使用。【参考方案2】:

设置 "mode" 有助于解决 webpack 4 中的以下问题,您可以使用 mode :development/production 的值来获取适当的配置文件。

module.exports = 
  mode: 'development'
;

【讨论】:

以上是关于NODE_ENV === 'production' 之外的缩小代码。这意味着 Redux 的开发构建速度较慢的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 NODE_ENV=production 的 spawn 函数

如何在 Windows 上设置 NODE_ENV=production?

您当前正在使用 NODE_ENV === "production" 之外的缩小代码

NODE_ENV=production关于不同系统的写法

当 NODE_ENV=production 时,Typescript 编译失败(在 Docker 中)

我可以在 webpack 4 中使用 NODE_ENV="staging" 和 mode="production" 吗?