2013-11-11 19 views
21

İşte benim dosyasıdır: jshint sorunu "katı kullanın"

app/scripts/controllers/main.js

"use strict"; 

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

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"] 

Ben grunt çalıştırdığınızda, alıyorum:

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

cevap

46

konudur İşlev formunu kullanmazsanız, sadece kodunuzu değil, her şey için geçerli olduğunu unutmayın. Bunun çözümü, kontrol ettiğiniz fonksiyonların içinde use strict kapsamıdır.

Bu soru ile ilgili şu soruya bakın: JSLint is suddenly reporting: Use the function form of “use strict”.

yerine

"use strict"; 

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

yapıyor

Sen It

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

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

yapıyor olmalı ya o ya da aşağıda gibi kendi kendine çalışan bir kapatma kodunuzu sarma.

(function(){ 
    "use strict"; 

    // your stuff 
})(); 
+1

Bunu yapmak için doğru yol aslında içerecek şekilde değiştirildi, ancak nasıl ben sadece uyarıyı göz ardı etmek jshint anlatır? Çalıştığım bir sürü .js dosyası var ve bunların her birini düzenlemek istemiyorum. – svarog

+5

Yapmalısınız, çünkü yapmazsanız dış kütüphaneleri kırıyor olabilirsiniz. – bevacqua

+1

'Yalnızca kodunuzu değil, her şey için de geçerlidir - yalnızca komut dosyanızı başkalarıyla birleştiriyorsanız. Aksi takdirde sadece sizin kodunuz için geçerlidir. –

8

benim Gruntfile.coffeeglobalstrict

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

"Bu seçenek, genel sıkı mod kullanımıyla ilgili uyarıları bastırır." Bir çözüm yerine bir grup yardımcısı gibi görünüyor. –

+0

Birkaç yıl oldu. Bağımlılıklarının “katılaşması veya çıkması” gerektiren projeleri görebiliyorum. –