我想设置我的Gruntfile.js来合并来自我们每个环境中不同的文件的特定数据变量。
我们目前正在使用load-grunt-config
扩展程序:
module.exports = function (grunt) {
require('load-grunt-config')(grunt, {
init: true,
data: { //data passed into config. Can use with <%= test %>
pkg: grunt.file.readJSON('package.json'),
var1: 'var1',
var2: 'var2',
var3: 'var3',
}
});
...
但我想做这样的事情:
module.exports = function (grunt) {
require('load-grunt-config')(grunt, {
init: true,
data: jQuery.extend(
grunt.file.readJSON('grunt-data.json'),
grunt.file.readJSON('grunt-data-environment.json'),
)
});
...
并将我的数据文件设置为:
//grunt-data.json
{
pkg: grunt.file.readJSON('package.json'),
var1: 'var1',
var2: 'var2',
var3: 'var3',
}
...
//grunt-data-environment.json ON DEV
{
var3: 'var3-dev',
}
..
//grunt-data-environment.json ON PROD
{
var1: 'var1-prod',
}
因此,在我的任务中使用<%= varX %>
时,将使用适当的变量覆盖。
很遗憾,我不能在这里使用jQuery
,有没有办法做到这一点?
答案 0 :(得分:0)
使用grunt-stage
(https://www.npmjs.com/package/grunt-stage - 完全披露:我是该插件的作者。)
您定义了2个文件:prod.json
和dev.json
。然后在您的配置中调用<%= stg.varX %>
,您将获得与您指定的阶段相对应的文件的值 - 例如,通过调用grunt stage:dev:build
。