我的文件夹包含不同构建环境的文件,如生产,阶段和测试。 例如:
src/config.prod.js
src/config.stage.js
src/config.test.js
我想要的是根据我获得的环境复制配置文件,使用以下代码从命令i获取环境名称:
var nopt = require('nopt')
, knownOpts = {
"env" : [String, null]
}
, shortHands = {
"test" : ["--env", "test"]
, "dev" : ["--dev", "dev"]
, "stage" : ["--env", "stage"]
, "prod" : ["--env", "prod"]
};
var flags = nopt(knownOpts, shortHands, process.argv, 2);
当我点击命令
gulp build --env dev
我正在获取环境名称,现在我想要的是根据环境将配置文件复制到dist文件夹(build)。我有复制文件的这个任务,但它复制所有文件,因为我不知道如何过滤它。
gulp.task('copyConfig', function(){
gulp.src(['src/*.js'])
.pipe(gulp.dest('dist/'))
})
如果有人提出任何建议,我是新手。请帮忙。
答案 0 :(得分:1)
新的配置目录,你在那里你的3,现有的配置(prod,阶段,测试)... mkdir configs
然后,对gulp进行了2次相关更改,以包含build.ENV和一个知道3个diff配置文件的copy.config任务...
var settings = {
/*
* Environment development | production
* match './configs' files of same name
*/
environment : process.env.NODE_ENV || 'development',
/*
* Where is our config folder?
*/
configFolder : 'configs',
/*
* Where is our code?
*/
srcFolder : 'app/scripts',
/*
* Where are we building to?
*/
buildFolder : 'dist',
};
/**
* Config Task
*
* Get the configuration file (dev or prod), rename it
* and move it to be built.
*/
gulp.task('config', function() {
return gulp.src(settings.configFolder + '/' + settings.environment + '.js')
.pipe(rename('config.js'))
.pipe(gulp.dest(settings.srcFolder));
});