如何使用grunt-ng-constant生成带双引号的常量名称

时间:2015-03-23 11:09:19

标签: javascript angularjs gruntjs

我使用grunt-ng-constant生成config.js

我已通过default serializer选项配置serializerOptions,以使用double quote作为enquoting char:

ngconstant: {
  // Options for all targets
  options: {
    space: '  ',
    wrap: '"use strict";\n\n {%= __ngModule %}',
    name: 'config',
    serializerOptions: {quote:'"'}
},

生成的config.js文件如下所示:

angular.module('config', [])
.constant('env', {name: "development"})

问题是常量名称和模块名称用单引号char引用。

1 个答案:

答案 0 :(得分:0)

解决方案可以是为配置生成提供不同的模板。

default template是:

angular.module('{%- moduleName %}'{% if (deps) { %}, [{%= deps.map(function (name) { return '\'' + name + '\'' }).join(', ') %}]{% } %})
{% constants.forEach(function (constant) { %}
.constant('{%- constant.name %}', {%= constant.value %})
{% }); values.forEach(function (value) { %}
.value('{%- value.name %}', {%= value.value %})
{% }) %}
;

应该改为:

angular.module("{%- moduleName %}"{% if (deps) { %}, [{%= deps.map(function (name) { return '"' + name + '"' }).join(', ') %}]{% } %})
{% constants.forEach(function (constant) { %}
.constant("{%- constant.name %}", {%= constant.value %})
{% }); values.forEach(function (value) { %}
.value('{%- value.name %}', {%= value.value %})
{% }) %}
;