4

哎呀咕噜大师!

我想将外部配置文件加载到 grunt 中,以便可以执行以下操作:

$ grunt dev:homepage

它会加载homepage-config.json,然后运行watch

$ grunt dev:contact

它会加载contact-config.json,然后运行watch

每个配置文件都会为任务提供特定的设置:watch、jshint、concat 等...

在我的 Gruntfile 中,我有一个名为dev

grunt.registerTask('dev', 'loads in external -config.json file, then runs watch', function(name) {

  grunt.initConfig(grunt.file.readJSON(name + '-config.json'));

  console.log(grunt.config('jshint.pageConfig.src') // correctly logs whatever had been specified in my external json file

  grunt.task.run('watch'); // correctly boots up watch with configuration specified by external file

});

在该dev任务中,外部加载的配置工作得很好。该console.log 将返回您所期望的,并且watch任务以外部指定的设置开始。

我的问题是,一旦watch开始触发任务,这些任务似乎不再有权访问这个外部加载的配置。dev在任务和由 触发的任务之间的某个地方watch,动态加载的配置被吹走了。

谁能解释为什么会发生这种情况以及我如何实现我的目标?

非常感谢,-詹姆斯

4

1 回答 1

3

您需要nospawn : true在监视任务配置中指定,以便被调用的任务在相同的上下文中运行。有关更多信息/示例,请参阅文档的这一部分

于 2013-06-19T06:22:58.767 回答