javascript - 使用 browserify/envify 删除 process.env.NODE_ENV?

标签 javascript node.js reactjs browserify

所以我正在通过 NPM 和 Browserify 使用 ReactJS,但是我正试图弄清楚如何像自述文件所说的那样在生产模式下构建它,但它似乎不起作用。我有这段代码来设置 browserify:

var browserify = require('browserify');
var envify = require('envify/custom');
var debug = false;

...

var libraries = browserify({
  debug: debug
}).transform(envify({
  _: 'purge',
  NODE_ENV: debug ? 'development' : 'production'
}));

gulpConfig.tasks.browserify.transformers.forEach(function(transform) {
  libraries.transform(transform);
});

gulpConfig.tasks.browserify.libraries.forEach(function(metaData) {
  if(metaData.path) {
    libraries.require(metaData.path, {
      expose: metaData.name
    });
  } else {
    libraries.require(metaData.name);
  }
});

var libraryStream = libraries.bundle()
.on('error', function(err){
  var message;

  if(err.description)
    message = 'browserify error: ' + err.description + ' when parsing ' + err.fileName + ' | Line ' + err.lineNumber + ', Column ' + err.column;
  else {
    message = err.message;
  }

  gutil.log(gutil.colors.red(message));

  this.emit('end');
})
.pipe(source('libraries.js'));

libraryStream.pipe(gulp.dest(gulpConfig.buildPath));

然而,当我查看编译后的代码时,我看到了一堆这样的内容:

if ("production" !== process.env.NODE_ENV) {

我认为它应该编译为:

if ("production" !== "production") {

然后可以通过 UglifyJS2 等工具自动删除。我把 Envify 设置错了吗?什么的。

最佳答案

React 已经自动配置了 envify。它将获取构建脚本本身运行的环境。您通常会在运行实际构建脚本之前设置 NODE_ENV,例如

NODE_ENV=production gulp build

或者更好的是,您可以将构建步骤添加到 package.json 中的 "scripts" block 中,这样您就可以执行

npm run --production build

关于javascript - 使用 browserify/envify 删除 process.env.NODE_ENV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939762/

相关文章:

javascript - 如何解决无限重新渲染问题?

javascript - 如何使用 async/await 将此回调转换为 promise?

javascript - 代码适用于 Firefox,但不适用于 Chrome、Safari

javascript - Knockout JS 中带有下拉列表的数组

javascript - 如何将 application/octet-stream 转换为以 base64 或任何 jpeg 格式显示的图像?

reactjs - 使用 ReactSelector for TestCafe 时不断收到 `ReExecutablePromise { _then: [], _fn: [Function], _taskPromise: null }`

javascript - 添加位置: absolute div below the page bottom?后如何使div具有100%的 body 高度

node.js - Angular 5 : Cannot read property 'subscribe' of undefined

node.js - http.get 请求的特殊输出?

javascript - React Native - Firestore : Possible Unhandled Promise Rejection Can't find variable atob