(本文是基於HKUST的NodeJS課程Grunt部分的學習筆記)
首先,我將實現JSHint模塊,用於檢查JS文件語法。
第一步,將cmd導航至一級目錄,運行以下代碼,安裝4個module:
npm install grunt-contrib-jshint --save-dev
npm install jshint-stylish --save-dev
npm install time-grunt --save-dev
npm install jit-grunt --save-dev
JSHint支持多種環境,這裏的第一個包集成了支持grunt環境的JSHint。第二個包用於生成分析報表。第三個包用於計算項目中各個步驟的運行時間。第四個包用於動態導入需要的grunt包(JIT - Just In Time)。
運行完成後檢查package.json文件,如下所示,可以發現,需要的包均已導入:
{
"name": "conFusion",
"private": true,
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-jshint": "^1.0.0",
"jit-grunt": "^0.10.0",
"jshint-stylish": "^2.1.0",
"time-grunt": "^1.3.0"
},
"engines": {
"node": ">=0.10.0"
}
}
第二步,在Gruntfile.js文件中添加配置:
'use strict';
module.exports = function (grunt) {
require('time-grunt')(grunt);
require('jit-grunt')(grunt);
// Define the configuration for all the tasks
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: {
options: {
jshintrc: '.jshintrc',
reporter: require('jshint-stylish')
},
all: {
src: ['Gruntfile.js', 'app/scripts/{,*/}*.js']
}
}
});
grunt.registerTask('build', ['jshint']);
grunt.registerTask('default',['build']);
};
第三步,在一級目錄下創建.jshintrc配置文件,並輸入以下內容,指定檢查範圍:
{
"bitwise": true,
"browser": true,
"curly": true,
"eqeqeq": true,
"esnext": true,
"latedef": true,
"noarg": true,
"node": true,
"strict": true,
"undef": true,
"unused": true,
"globals": {
"angular": false
}
}
最後,在完成以上步驟後,在控制檯運行以下指令:
grunt
測試結果如圖:
JSHint工作正常。