我正在尝试使用includereplace插件进行grunt。我试图通过使用以下代码获取JSON来为globals
属性赋值:
grunt.registerTask('fetchProperties', 'Fetches the properties.json file', function() {
properties = grunt.file.readJSON('properties.json');
grunt.log.writeln(['Properties file loaded']);
});
现在当我properties.var_a
时,它会正确返回var_a
的值。
所以,我这样做了:
grunt.registerTask('fetchProperties', 'Fetches the properties.json file', function() {
properties = grunt.file.readJSON('properties.json');
grunt.task.run('includereplace');
})
这是我的includereplace任务:
includereplace: {
dist: {
options: {
globals: {
VAR_A: properties.var_a,
VAR_B: properties.var_b
},
},
files: [{
src: '../myFiles/path/to/some/file/main.txt',
dest: '../myOtherFiles/path/to/some/file/mainrep.txt'
}]
}
}
现在,includereplace
任务替换的值为undefined
。
如何缓解这个问题?
此外,我已尝试使用grunt.config
设置变量,但问题是,我有一个JSON文件,在加载时将返回一个对象而不是单个值。如何设置一个全局对象,可供执行中的所有任务用于设置其参数?
我正在grunt文件的开头加载JSON文件。这是我module.exports = function(grunt) { ...
答案 0 :(得分:1)
这很有用!
grunt.initConfig({
properties: grunt.file.readJSON('properties.json'),
includereplace: {
dist: {
options: {
globals: {
VAR_A: '<%= properties.var_a %>',
VAR_B: '<%= properties.var_b %>'
},
},
files: [{
src: '../myFiles/path/to/some/file/main.txt',
dest: '../myOtherFiles/path/to/some/file/mainrep.txt'
}]
}
}
});