2013-03-19 3 views
4

나는 작업을 GruntJS에서 두 번 실행하지만 매번 다른 옵션을 사용하고 싶습니다.같은 작업에 대해 두 번 회랑하기

어떻게 그렇게 할 것입니까?

'use strict'; 

module.exports = function(grunt) { 
    var opts = { 
     pkg: grunt.file.readJSON('package.json'), 
     jasmine_node: { 
      matchall: true, 
      forceExit: true 
     }, 
     jshint: { 
      files: [ 
       'gruntfile.js', 
       'src/**/*.js', '!src/static/bin', '!src/static/js/libs/*.js', 
       'test/spec/**/*.js' 
      ], 
      options: { 
       jshintrc: '.jshintrc' 
      } 
     } 
    }; 

    grunt.initConfig(opts); 

    grunt.loadNpmTasks('grunt-contrib-jshint'); 
    grunt.loadNpmTasks('grunt-jasmine-node'); 

    grunt.registerTask('default', ['jshint', 'jasmine_node']); 
    grunt.registerTask('travis', ['jshint', 'jasmine_node']); 
}; 

그리고 나는 이런 식으로 뭔가되고 싶은 아마도 다음과 같습니다 :

현재 내 Gruntfile.js은 다음과 같습니다

var jshint: { 
    files: [ 
     'gruntfile.js', 
     'src/**/*.js', '!src/static/**', 
     'test/spec/**/*.js' 
    ], 
    options: { 
     jshintrc: '.jshintrc' 
    } 
} 

var jshint2 = { 
    files: [ 
     'src/static/**/*.js', 
     '!src/static/bin', 
     '!src/static/js/libs/*.js' 
    ], 
    options: { 
     jshintrc: '.jshintrc-browser' 
    } 
}; 

그래서 프런트 엔드에 대해 서로 다른 옵션을 선택할 수 있음 javascript 및 NodeJS javascript를 사용하면 각 환경마다 linting이 달라야합니다.

답변

6

jshint은입니다.. 그래서 다음과 같은 설정을 가질 수 있습니다 :

grunt jshint:browser :

jshint: { 
    browser: { 
    files: [ 
     'src/static/**/*.js', 
     '!src/static/bin', 
     '!src/static/js/libs/*.js' 
    ], 
    options: { 
     jshintrc: '.jshintrc-browser' 
    } 
    }, 
    node: { 
    files: [ 
     'gruntfile.js', 
     'src/**/*.js', '!src/static/**', 
     'test/spec/**/*.js' 
    ], 
    options: { 
     jshintrc: '.jshintrc' 
    } 
    } 
} 

브라우저 버전를 실행하려면.

grunt jshint:node :

노드 버전으로 실행합니다.

그냥 실행 :

grunt jshint

모두를 실행합니다. 물론

, 당신은 아마, 다른 작업을 통해 예컨대 그들을 트리거 할 것이다

grunt.registerTask('build', ['clean:all', 'jshint:browser', ...]); 

당신은 더 많은 정보를 원하시면 섹션 Specifying JSHint options and globals을 읽고 싶어합니다.