我有一个选择和复制目标环境相关配置文件的任务。
var environment = process.env.NODE_ENV
|| (gulputil.env.environment || 'production');
process.env.NODE_ENV = environment;
// copies ./src/configs/default-<environment>.json to ./dst/configs/default.json
gulp.task('config-default', function () {
return gulp.src([paths.src + '/configs/default-' + environment + '.json'])
.pipe(gulpdebug({title: 'config-default'}))
.pipe(gulprename('default.json'))
.pipe(gulp.dest(paths.dst_configs));
});
它打算如下工作。
$ echo NODE_ENV
$ gulp
environment: production
...
$ gulp --environment staging
environment: staging
...
$ export NODE_ENV=production
$ echo $NODE_ENV
production
$ gulp
environment: production
$
如何检查其他人是否指定了错误的环境变量,因此没有文件configs/default-<specified>.json
?
$ gulp --environment integration
there is no configs/default-integration.json
$
答案 0 :(得分:2)
最简单的方法是事先检查文件是否存在:
var glob = require('glob');
gulp.task('config-default', function (done) {
var configFile = paths.src + '/configs/default-' + environment + '.json';
if (glob.sync(configFile).length == 0) {
done('there is no ' + configFile);
return;
}
return gulp.src([configFile])
.pipe(gulpdebug({title: 'config-default'}))
.pipe(gulprename('default.json'))
.pipe(gulp.dest(paths.dst_configs));
});