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