2013-01-16 2 views
3

Ahoy 툴툴 거리는 주인!gruntjs 외부 구성을로드하십시오

나는 이런 식으로 뭔가 할 수 있도록 나는 툴툴 거리는 소리에 외부 설정 파일을로드 할 수 싶습니다

$ grunt dev:homepage

을하고 homepage-config.json에로드합니다, 다음 실행 watch

$ grunt dev:contact

이고 contact-config.json으로로드 한 다음 watch

를 실행하십시오.

각 설정 파일은 특정 작업에 대한 설정을 제공 할 것이다 : 그 dev 작업 내에서 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 

}); 

라는 작업이 시계, jshint, CONCAT, 등등 ... 내 Gruntfile 내부

를 외부 로드 된 구성은 잘 작동합니다. 그 console.log는 당신이 기대하는 것을 반환 할 것이고, watch 작업은 외부 적으로 지정된 설정으로 시작됩니다.

내 문제는 일단 watch이 작업을 시작하기 시작하면이 작업은 더 이상이 외부 적으로로드 된 구성에 액세스하지 못하는 것입니다. dev 작업과 watch에 의해 트리거 된 작업 사이의 어딘가에서 동적으로로드 된 구성이 날아가 버립니다.

왜 이런 일이 일어나는 지, 그리고 어떻게 내 목표를 달성 할 수 있는지에 대해 알려줄 수 있습니까?

많은 감사, - 제임스

답변

3

당신은 호출 된 작업이 동일한 컨텍스트에서 실행되도록 시계 작업 구성에 nospawn : true을 지정해야합니다. 자세한 정보/예는 this section 문서를 참조하십시오.

관련 문제