【发布时间】:2023-03-21 05:14:01
【问题描述】:
所以这是我假设的 fooTask 的假设配置对象,它对一堆 JS 文件执行某些操作(与问题无关)
grunt.initConfig({
fooTask: {
app1: 'app1/*.js',
app2: 'app2/*.js',
app3: 'app3/*.js'
}
});
如您所见,使用这种方法,我必须运行 fooTask 3 次,并将每个应用程序指定为目标:
grunt fooTask:app1
grunt fooTask:app2
grunt fooTask:app3
不用说,这不会随着应用数量的增加或此类 foo 任务的数量增加而扩展,因为必须为每个应用一遍又一遍地 C&P 相同的代码。
所以理想情况下,我想定义的只是一个目标,其中应用程序的名称作为配置变量传入
grunt.initConfig({
fooTask: {
dist: '<%=appName%>/*.js'
}
});
然后我想调用 fooTask 3 次,每个应用一个,将正确的应用设置为 appName
var apps = ['app1', 'app2', 'app3'];
apps.forEach(function(app) {
var currAppName = app;
// Run fooTask but how do I specify the new currAppName config?
grunt.task.run('fooTask');
});
根据上面的代码,我知道我可以使用grunt.task.run 运行我的 fooTask,但是如何为我的任务设置 appName 配置?
请注意,这个问题与另一个还没有正确答案的问题类似 - Pass Grunt config options from task.run
非常感谢。
【问题讨论】:
标签: javascript node.js build gruntjs