jshint “use strict” issue
本问题已经有最佳答案,请猛点这里访问。
这是我的档案:
1 2 3 4 5 6 7 8 9 10 | "use strict"; angular.module('appApp') .controller('MainCtrl', ['$scope', function ($scope) { $scope.awesomeThings = [ 'HTML5 Boilerplate', 'AngularJS', 'Karma' ]; }]); |
我的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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"] |
当我运行
1 2 3 | Linting app/scripts/controllers/main.js ...ERROR [L1:C1] W097: Use the function form of"use strict". "use strict"; |
问题是,如果您不使用函数形式,它将应用于所有内容,而不仅仅是您的代码。解决方案是将
参考这个问题:jslint突然报告:使用"use strict"的函数形式。
而不是做
1 2 3 4 5 6 7 8 9 10 | "use strict"; angular.module('appApp') .controller('MainCtrl', ['$scope', function ($scope) { $scope.awesomeThings = [ 'HTML5 Boilerplate', 'AngularJS', 'Karma' ]; }]); |
你应该这么做
1 2 3 4 5 6 7 8 9 10 | angular.module('appApp') .controller('MainCtrl', ['$scope', function ($scope) { "use strict"; $scope.awesomeThings = [ 'HTML5 Boilerplate', 'AngularJS', 'Karma' ]; }]); |
要么就是这样,要么把代码包装在一个自动执行的闭包中,如下所示。
1 2 3 4 5 | (function(){ "use strict"; // your stuff })(); |
把我的
1 2 3 4 5 6 7 8 9 10 | jshint: options: globalstrict: true globals: require: false module: false console: false __dirname: false process: false exports: false |