如何将动态配置传递给 Gruntfile.js
How to pass dynamic config to Gruntfile.js
我已经编写了将 ES6 转换为 ES5 的 grunt 任务。以下是我的 Gruntfile.js 文件
module.exports = function (grunt)
{
require("load-grunt-tasks")(grunt);
grunt.initConfig({
"babel": {
options: {
presets: ['es2015']
},
dist: {
files: [{
expand: true,
cwd: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
src: ['**/*.es6'],
dest: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
ext: '.js'
}]
}
}
});
grunt.registerTask("default", ["babel"]);
};
在这个文件中,我想动态地传递 cwd 和 dest 选项,这样我就可以将它用于不同的项目,并且我们的所有项目都有共同的构建。
如果有人以前做过这方面的工作,您可以针对此任务提出一些方法或任何替代解决方案。
module.exports = function(grunt) {
require("load-grunt-tasks")(grunt);
grunt.initConfig({
"babel": {
options: {
presets: ['es2015']
},
dist: {
files: [{
expand: true,
cwd: "<%= cwd %>",
src: ['**/*.es6'],
dest: "<%= dest %>",
ext: '.js'
}]
}
}
});
grunt.registerTask("dynamicConfigs", "Set Dynamic Configs", function (argName, argValue) {
grunt.config.set(argName, argValue);
});
grunt.registerTask("default", ["dynamicConfigs:cwd:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "dynamicConfigs:dest:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "babel"]);
};
您可以将这些属性定义为模板,然后在调用 babel
任务之前调用新创建的 dynamicConfigs
任务。
在 dynamicConfigs 中,您基本上是在 grunt.config
中设置键值对。
确保调用 dynamicConfigs
任务时使用您想要在上面的示例代码中设置的参数。
我已经编写了将 ES6 转换为 ES5 的 grunt 任务。以下是我的 Gruntfile.js 文件
module.exports = function (grunt)
{
require("load-grunt-tasks")(grunt);
grunt.initConfig({
"babel": {
options: {
presets: ['es2015']
},
dist: {
files: [{
expand: true,
cwd: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
src: ['**/*.es6'],
dest: '/Users/pankajmeshram/Documents/IVWorkSpace/enfresh/resources/modules',
ext: '.js'
}]
}
}
});
grunt.registerTask("default", ["babel"]);
};
在这个文件中,我想动态地传递 cwd 和 dest 选项,这样我就可以将它用于不同的项目,并且我们的所有项目都有共同的构建。
如果有人以前做过这方面的工作,您可以针对此任务提出一些方法或任何替代解决方案。
module.exports = function(grunt) {
require("load-grunt-tasks")(grunt);
grunt.initConfig({
"babel": {
options: {
presets: ['es2015']
},
dist: {
files: [{
expand: true,
cwd: "<%= cwd %>",
src: ['**/*.es6'],
dest: "<%= dest %>",
ext: '.js'
}]
}
}
});
grunt.registerTask("dynamicConfigs", "Set Dynamic Configs", function (argName, argValue) {
grunt.config.set(argName, argValue);
});
grunt.registerTask("default", ["dynamicConfigs:cwd:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "dynamicConfigs:dest:/Users/vineethgn/Documents/IVWorkSpace/enfresh/resources/modules", "babel"]);
};
您可以将这些属性定义为模板,然后在调用 babel
任务之前调用新创建的 dynamicConfigs
任务。
在 dynamicConfigs 中,您基本上是在 grunt.config
中设置键值对。
确保调用 dynamicConfigs
任务时使用您想要在上面的示例代码中设置的参数。