2013-11-11 2 views
21

여기 내 파일입니다 : jshint 문제 "엄격한 사용"

app/scripts/controllers/main.js

"use strict"; 

angular.module('appApp') 
    .controller('MainCtrl', ['$scope', function ($scope) { 
    $scope.awesomeThings = [ 
     'HTML5 Boilerplate', 
     'AngularJS', 
     'Karma' 
    ]; 
    }]); 
Gruntfile.coffee 있습니다

jshint: 
    options: 
     globals: 
      require: false 
      module: false 
      console: false 
      __dirname: false 
      process: false 
      exports: false 

    server: 
     options: 
      node: true 
     src: ["server/**/*.js"] 

    app: 
     options: 
      globals: 
       angular: true 
       strict: true 

     src: ["app/scripts/**/*.js"] 

내가 grunt를 실행하면, 내가 얻을 :

Linting app/scripts/controllers/main.js ...ERROR 
[L1:C1] W097: Use the function form of "use strict". 
"use strict"; 

답변

46

문제는 함수 형식을 사용하지 않으면 코드뿐만 아니라 모든 것에 적용됩니다. 이에 대한 해결책은 사용자가 제어하는 ​​기능 안에 범위 use strict입니다.

이 질문을 참조하십시오 : JSLint is suddenly reporting: Use the function form of “use strict”.

보다는

"use strict"; 

angular.module('appApp') 
    .controller('MainCtrl', ['$scope', function ($scope) { 
    $scope.awesomeThings = [ 
     'HTML5 Boilerplate', 
     'AngularJS', 
     'Karma' 
    ]; 
    }]); 

을하고

당신은 그것의

angular.module('appApp') 
    .controller('MainCtrl', ['$scope', function ($scope) { 
    "use strict"; 

    $scope.awesomeThings = [ 
     'HTML5 Boilerplate', 
     'AngularJS', 
     'Karma' 
    ]; 
    }]); 

일을해야하거나 그 이하와 같이 자체 실행 폐쇄의 코드를 포장.

(function(){ 
    "use strict"; 

    // your stuff 
})(); 
+1

그것은 그것을 할 올바른 방법이 실제로 포함하도록 변경,하지만 어떻게 난 그냥 경고를 무시 jshint을 알 수 있습니까? .js 파일이 많아서 편집하고 싶지 않습니다. – svarog

+5

그렇지 않으면 외부 라이브러리를 손상시킬 수 있기 때문에해야합니다. – bevacqua

+1

'스크립트를 다른 사람과 연결하는 경우에만 코드가 아닌 모든 것에 적용됩니다. 그렇지 않으면 코드에만 적용됩니다. –

8

Gruntfile.coffeeglobalstrict

jshint: 
    options: 
     globalstrict: true 
     globals: 
      require: false 
      module: false 
      console: false 
      __dirname: false 
      process: false 
      exports: false 
+4

"이 옵션은 전역 엄격 모드 사용에 대한 경고를 표시하지 않습니다." 해결책이 아닌 반창고 같은 소리. –

+0

몇 년이 지났습니다. 나는 의존성에 대한 "엄격한 결정"을 요구하는 프로젝트를 볼 수있다. –

관련 문제