これが私のファイルです: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";
問題は、関数フォームを使用しない場合、コードだけでなくすべてに適用されることです。その解決策は、制御する関数内でuse strict
をスコープすることです。
この質問を参照してください: JSLintが突然報告しています:「厳密な使用」の関数形式を使用してください 。
するのではなく
"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
})();
Gruntfile.coffee
がglobalstrict
を含むように変更しました
jshint:
options:
globalstrict: true
globals:
require: false
module: false
console: false
__dirname: false
process: false
exports: false