如何设置一个环境variables作为吞噬任务?
我不想在每次运行NODE_ENV='production' gulp设置一个环境variables时input额外的参数NODE_ENV='production' gulp 。 
我宁愿通过一个任务从gulp中设置环境variables。
什么是实现这个目标的好方法?
 gulp.task('set-dev-node-env', function() { return process.env.NODE_ENV = 'development'; }); gulp.task('set-prod-node-env', function() { return process.env.NODE_ENV = 'production'; }); 
像这样使用它:
 gulp.task('build_for_prod', ['set-prod-node-env'], function() { // maybe here manipulate config object config.paths.src.scripts = config.paths.deploy.scripts; runSequence( 'build', 's3' ); }); 
试试gulp-env
运行nodemon任务之前如何设置一些环境variables的快速示例:
 // gulpfile.js var gulp = require('gulp'); var nodemon = require('nodemon'); var env = require('gulp-env'); gulp.task('nodemon', function() { // nodemon server (just an example task) }); gulp.task('set-env', function () { env({ vars: { MONGO_URI: "mongodb://localhost:27017/testdb-for-british-eyes-only", PORT: 9001 } }) }); gulp.task('default', ['set-env', 'nodemon']) 
 您也可以将其定义为package.json的脚本 
 { "name": "myapp", "scripts": { "gulp": "NODE_ENV='development' gulp", "gulp-build": "NODE_ENV='production' gulp" }, ... } 
 用npm run gulp-build 。 这有几个好处 
- 您可以轻松定义参数,而不是每次input参数
 - 不需要全局的gulp安装(对于webpack等其他工具也是如此)
 - 你可以用不同的环境variables和(或)参数来定义多个variables,而不用改变gulp文件(正如你可以看到的那样 – 分别用于开发和生产的gulp和gulp-build)
 
 你也可以默认设置一个,并从json文件读取variables: 
 gulp.task('set-env', function () { var envId = gutil.env.env; if (!envId) { envId = "dev"; } genv({ file: "env." + envId + ".json" }); }); 
 这将是默认情况下始终dev ,你可以调用它设置另一个环境,如下所示: 
 gulp --env prod 
更多的咕噜env