我试图NODE_ENV使用webpackvia 将值注入我的代码中DefinePlugin.我或多或少地检查了一个相同的问题,但仍无法使其工作.
具体来说,这是我的设置.
在package.json:
"scripts": {
"build": "rimraf dist && cross-env NODE_ENV=production webpack",
"dev": "cross-env NODE_ENV=development && node webpack-dev-server.js"
},
Run Code Online (Sandbox Code Playgroud)
在webpack.config.js:
"use strict";
/* requiring the modules */
const webpack = require("webpack");
const path = require("path");
/* defining the source and distribution paths */
const DIST_DIR = path.resolve(__dirname, "dist");
const SRC_DIR = path.resolve(__dirname, "src");
const DEVELOPMENT = process.env.NODE_ENV === "development";
const PRODUCTION = process.env.NODE_ENV === "production";
// const …Run Code Online (Sandbox Code Playgroud) 我在React/Redux应用程序上收到此错误消息,该应用程序已缩小并与Browserify和Gulp一起打包并部署到Heroku.
bundle.js:39 You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux.
但似乎构建步骤正在进行中NODE_ENV = 'production'.
我有一个设置env变量的任务
gulp.task('apply-prod-environment', function() {
return process.env.NODE_ENV = 'production';
});
Run Code Online (Sandbox Code Playgroud)
Heroku上的日志显示ENV正在生产:
为了保证在apply-prod-environment 其他任务之前运行,我正在使用RunSequenceGulp插件.
gulp.task('buildProd', cb => {
runSequence(
'apply-prod-environment',
'task-1',
'task-2',
'etc',
cb
);
});
Run Code Online (Sandbox Code Playgroud)
编辑
第二次尝试..
import envify from 'envify/custom';
function buildJS(sourceFile, {setEnv}) {
return browserify(sourceFile)
.transform(babelify, {
presets: ['es2015', 'react', 'stage-2']
})
.transform(envify({
NODE_ENV: setEnv
})) …Run Code Online (Sandbox Code Playgroud)