Javascript 是否使用browserify/envify删除process.env.NODE_env?
因此,我通过NPM和Browserify使用ReactJS,但我试图找出如何在生产模式下构建它,如自述文件所述,但它似乎不起作用。我有以下代码来设置browserify:Javascript 是否使用browserify/envify删除process.env.NODE_env?,javascript,node.js,reactjs,browserify,Javascript,Node.js,Reactjs,Browserify,因此,我通过NPM和Browserify使用ReactJS,但我试图找出如何在生产模式下构建它,如自述文件所述,但它似乎不起作用。我有以下代码来设置browserify: var browserify = require('browserify'); var envify = require('envify/custom'); var debug = false; 但是,当我查看编译后的代码时,我看到了一堆这样的代码: if ("production" !== process.env.NOD
var browserify = require('browserify');
var envify = require('envify/custom');
var debug = false;
但是,当我查看编译后的代码时,我看到了一堆这样的代码:
if ("production" !== process.env.NODE_ENV) {
我认为它应该编译为:
if ("production" !== "production") {
然后可以通过UglifyJS2等工具自动删除。我设置嫉妒是错误的吗?或者别的什么。React已经自动配置了
envify
。它将拾取构建脚本本身正在运行的环境。在运行实际构建脚本之前,通常会设置NODE\u ENV
,例如
NODE_ENV=production gulp build
或者更好的是,您可以将构建步骤添加到package.json
中的“scripts”
块中,这样您就可以
npm run --production build
干脆换成
var libraries = browserify({
debug: debug
}).transform(envify({
_: 'purge',
NODE_ENV: debug ? 'development' : 'production'
}), {
global: true
});
您似乎没有为您的代码提供browserify入口点-它应该是您传递的选项对象中的
browserify()
或entries
属性的第一个参数。我只添加了我认为相关的代码,但我已经用完整的browserify代码更新了我的libraries.js文件。注意,捆绑包没有入口点,因为它只包含核心库,文件不会经常更改,所以我使用require()
手动添加它们。如果您有单独的生产和开发任务,还可以在gulp脚本中设置process.env.NODE\u env='production'
。这主要是你个人的喜好。
var libraries = browserify({
debug: debug
}).transform(envify({
_: 'purge',
NODE_ENV: debug ? 'development' : 'production'
}), {
global: true
});