grunt-ng-constant目标不能始终如一地工作

时间:2015-09-08 05:08:12

标签: javascript angularjs gruntjs

我遇到了grunt-ng-constant的奇怪问题,其中3个目标中只有2个有效。

我的配置如下所示:

grunt.initConfig({
  ngconstant: {
    options: {
      space: '  ',
      wrap: '"use strict";\n\n {%= __ngModule %}',
      name: 'config'
    },
    // Environment targets
    development: {
      options: {
        dest: '<%= yeoman.app %>/scripts/config.js',
      },
      constants: {
        ENV: {
          name: 'development',
          apiEndpoint: 'http://your-development.api.endpoint:3000'
        }
      }
    },
    staging: {
      options: {
        dest: '<%= yeoman.app %>/scripts/config.js',
      },
      constants: {
        ENV: {
          name: 'staging',
          apiEndpoint: 'http://your-staging.api.endpoint:3000'
        }
      }
    },
    production: {
      options: {
        dest: '<%= yeoman.dist %>/scripts/config.js',
      },
      constants: {
        ENV: {
          name: 'production',
          apiEndpoint: 'http://api.livesite.com'
        }
      }
    }
  }
})

我正在注册以下任务

 grunt.registerTask('development', [
    'ngconstant:development'
 ]);

 grunt.registerTask('staging', [
    'ngconstant:staging'
 ]);

 grunt.registerTask('production', [
   'ngconstant:production'
 ]);

如果我运行以下两个命令,一切正常,config.js文件生成并且看起来很棒。

grunt development
grunt staging

但是运行grunt production不会生成config.js文件。我似乎无法弄清楚为什么会这样。

1 个答案:

答案 0 :(得分:1)

我在以config.js开头的路径中生成<%= yeoman.app %>文件的开发和暂存任务,但在生产中,您使用的是以<%= yeoman.dist %>开头的文件。

我会检查第二条路径(或yeoman.dist)是否存在。