12

有没有办法从 package.json 文件中将数组传递给 grunt.js?我尝试了几种不同的方法,但它们似乎都不起作用。我目前有:

/*global module:false*/
module.exports = function(grunt) {

     // Project configuration.
     grunt.initConfig({
    pkg: '<json:package.json>',

    lint: {
      files: '<%= pkg.lint.join(", ") %>'
    }

    // Default task 'lint qunit concat min'
    grunt.registerTask('default', 'lint');
};

包.json

{
  "lint": [   
              "grunt.js",
              "test.js"
          ]
}

我能找到的唯一解决方案是传入数组的特定索引;例如 <%= pkg.lint[0] %>。在此先感谢您的帮助!

4

3 回答 3

25

由于 gruntjs 在节点中运行,您可以访问 package.json,如下所示:

var package = require('./package.json'),
    property = package.property[0];
于 2012-09-14T15:32:44.607 回答
2

我认为<%= … %>语法(下划线模板系统中的变量插值)只能输出字符串,不能输出数组/对象。

试试这个:

lint: {
    files: '<config:pkg.lint>'
}

我在 Grunt 的jQuery init task中找到了这种语法。

于 2012-09-13T19:26:49.593 回答
1
grunt.initConfig({
  lint: grunt.file.readJSON('package.json').lint,
});
于 2015-09-09T21:43:00.933 回答