Reputation: 1305
is there a way to pass in an array to grunt.js from the package.json file? I've tried a few different ways and none of them seem to work. I currently have:
/*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');
};
package.json
{
"lint": [
"grunt.js",
"test.js"
]
}
The only solution that I have been able to find is to pass in a specific index of the array; e.g. <%= pkg.lint[0] %>. Thanks in advance for your help!
Upvotes: 12
Views: 9001
Reputation: 1228
grunt.initConfig({
lint: grunt.file.readJSON('package.json').lint,
});
Upvotes: 1
Reputation: 266
Since gruntjs in run in node you can access the package.json like:
var package = require('./package.json'),
property = package.property[0];
Upvotes: 25
Reputation: 13516
I think that the <%= … %>
syntax (variable interpolation in Underscore's template system) can only output strings, not arrays/objects.
Try this instead:
lint: {
files: '<config:pkg.lint>'
}
I found this syntax in Grunt's jQuery init task.
Upvotes: 2