Я не хочу вводить дополнительные аргументы NODE_ENV='production' gulp
при каждом запуске gulp для установки переменной среды.
Я предпочел бы установить переменную среды из gulp с помощью задачи.
Что было бы хорошим способом добиться этого?
Я не хочу вводить дополнительные аргументы NODE_ENV='production' gulp
при каждом запуске gulp для установки переменной среды.
Я предпочел бы установить переменную среды из gulp с помощью задачи.
Что было бы хорошим способом добиться этого?
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:
// 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'])
Вы также можете определить его как script в package.json
{
"name": "myapp",
"scripts": {
"gulp": "NODE_ENV='development' gulp",
"gulp-build": "NODE_ENV='production' gulp"
},
...
}
И запустите его с помощью npm run gulp-build
. Это имеет несколько преимуществ
Вы также можете установить один по умолчанию и прочитать переменные из файла json
:
gulp.task('set-env', function () {
var envId = gutil.env.env;
if (!envId) {
envId = "dev";
}
genv({
file: "env." + envId + ".json"
});
});
Это всегда будет dev
env по умолчанию, и вы можете назвать его настройкой другого env, например:
gulp --env prod
Больше gulp-env