2013-09-25 3 views
2

grunt.option 페이지의 지침에 따라 Gruntfile에서 개발, 준비 및 프로덕션과 같은 다양한 환경/대상에 대해 다른 구성을 만들었습니다. 그러나 그렇게 할 때 나는 내 작업이 조용히 실패하는 것을 발견했다.Gruntjs 타겟에서 내가 뭘 잘못하고 있니?

나는이 문제를 아주 간단한 예제로 줄였습니다. 그러나, 나는 다음과 같은 Gruntfile를 사용하는 경우

$ grunt 
Running "less:dev" (less) task 

Done, without errors. 

, 빌드 출력이 예상대로 : 내 터미널의 출력은 다음과 같다

module.exports = function (grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    less: { 
     dev: { 
     options: { 
      compress: true 
     }, 
     build: { 
      src: ['src/css/test.less'], 
      dest: 'build/css/test.css' 
     } 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.registerTask('default', ['less:dev']); 
}; 

다음 Gruntfile는 파일을 작성하는 데 실패

$ grunt 
Running "less:build" (less) task 
File build/css/test.css created. 

Done, without errors. 
:
module.exports = function (grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    less: { 
     options: { 
     compress: true 
     }, 
     build: { 
     src: ['src/css/test.less'], 
     dest: 'build/css/test.css' 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.registerTask('default', ['less']); 
}; 

이 Gruntfile에 대한 터미널 출력은 내장 된 파일을 반영

처음 Gruntfile에서 내가 뭘 잘못하고 있니? 이 task:target 대회에 대해 내가 빠뜨린 것은 무엇입니까?

답변

6

첫 번째 Gruntfile - 대상 별 옵션을 원할 경우 files 개체를 지정해야합니다. 그래서 코드는 다음과 같이 될 것이다 :

less: { 
    dev: { 
    files: { 
     "build/css/test.css": "src/css/test.less" 
    } 
    }, 
    production: { 
    options: { 
     compress: true 
    }, 
    files: { 
     "build/css/test.css": "src/css/test.less" 
    } 
    }, 
} 

기본적으로 첫 번째 Gruntfile build에서하는 알 수없는 개체입니다. 표적의 이름은 dev이고 grunt-contrib-less에는 build이라는 옵션이 없으므로 Grunt는 파일을 쓸 위치를 모릅니다. 두 번째 Gruntfile은 옵션을 전역으로 설정했기 때문에 작동합니다. per-target 옵션을 원한다면 위의 코드를 사용하십시오.

+0

우수, 간결한 설명을 위해 대단히 감사합니다! :) – Josh

+1

대단히 반갑습니다. :) – Ben

+0

벤 감사합니다. 나는이 질문에 대해서도 여기에 왔습니다. 꽤 화가 났고, 많이 감사했습니다. – Kurtosis

관련 문제