web-dev-qa-db-fra.com

jshint "use strict" issue

Voici mon dossier: app/scripts/controllers/main.js

"use strict";

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

Ma Gruntfile.coffee a:

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

Lorsque j'exécute grunt, j'obtiens:

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

Le problème est que si vous n'utilisez pas le formulaire de fonction, il s'applique à tout, et pas seulement à votre code. La solution est d'étendre use strict à l'intérieur des fonctions que vous contrôlez.

Reportez-vous à cette question: JSLint signale soudainement: utilisez la forme de fonction "use strict" .

Plutôt que de faire

"use strict";

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

Tu devrais faire

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

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

C'est soit cela, soit encapsuler votre code dans une fermeture auto-exécutable, comme ci-dessous.

(function(){
    "use strict";

    // your stuff
})();
49
bevacqua

J'ai changé mon Gruntfile.coffee pour inclure globalstrict

jshint:
    options:
        globalstrict: true
        globals:
            require: false
            module: false
            console: false
            __dirname: false
            process: false
            exports: false
8
Shamoon