Angularjs 如何基于gulp上的环境复制文件

Angularjs 如何基于gulp上的环境复制文件,angularjs,node.js,gulp,Angularjs,Node.js,Gulp,我有一个文件夹,其中包含用于不同构建环境(如生产、阶段和测试)的文件。 例如: 我想要的是基于我获得的环境复制配置文件,以便使用以下代码从命令I获取环境名称: var nopt = require('nopt') , knownOpts = { "env" : [String, null] } , shortHands = { "test" : ["--env", "test"]

我有一个文件夹,其中包含用于不同构建环境(如生产、阶段和测试)的文件。 例如:

我想要的是基于我获得的环境复制配置文件,以便使用以下代码从命令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/'))
})

如果有人有什么建议的话,我是个新手。请提供帮助。

新配置目录,您可以在其中移动3个现有配置(产品、阶段、测试)。。。mkdir配置

然后,对gulp进行2个相关更改,以合并build.ENV和一个copy.config任务,该任务了解您的3个diff-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));
});

看看这个非常有用的问题:
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));
});