我正在使用grunt
制作构建工具,直到现在我将src
和dest
地址直接放在我的grunt.js文件中,但在这种情况下,如果我想要更改我的目标我必须在文件的每个任务中进行更改,这不是一个好习惯。例如,如果我的grunt.js文件有以下任务:
concat: {
js: {
src: 'src/js/*.js',
dest: 'dest/js/concat.js'
},
css: {
src: 'src/css/*.css',
dest: 'dest/css/concat.css'
}
},
min: {
js: {
src: 'dest/js/concat.js',
dest: 'dest/js/concat.min.js'
}
},
如果我改变地址,我必须在每个地方改变!!!
我想要一个JSON
文件,我可以在其中声明src和dest并在我的grunt.js文件中调用。我们怎么能这样做?
答案 0 :(得分:1)
您可以向package.json
添加属性以声明元数据,例如
{
"name": "test",
"meta":{
"src":"someSrcFolder",
"dest":"someDestFolder"
},
....
}
然后在Gruntfile.js
中,您可以阅读这些属性
grunt.initConfig({
pkg: '<json:package.json>',
concat: {
js: {
src: '<%= pkg.meta.src %>/js/*.js',
dest: '<%= pkg.meta.dest %>/js/concat.js'
},
css: {
src: '<%= pkg.meta.src %>/css/*.css',
dest: '<%= pkg.meta.dest %>/css/concat.css'
}
}
});
重要位是pkg:<json:package.json>
,它将json文件加载到内存中,下划线模板插值<%= pkg.meta.src %>
计算添加到json文件的meta
属性的内容。
请记住, Gruntfile 只是一个JavaScript文件,因此您还可以拥有一个引用路径的对象,然后将它们插入到您的任务中。
答案 1 :(得分:1)
这在Grunt.js 0.4.0中有所改变。
您现在可以使用:pkg: grunt.file.readJSON('package.json')