目前 Grunt 的安裝有些改變, grunt-cli 全局安裝, 而 grunt 安裝在本項目.
$ npm install grunt-contrib-watch –save-dev
$npm install grunt-nodemon –save-dev
$npm install grunt
加上–save-dev可以讓本地添加的插件自動添加到項目的依賴中去。
安裝完以後,配置gruntfile.js檔案。根據自己的目錄要做修改。
module.exports = function(grunt) {
grunt.initConfig({
watch: {
jade: {
files: ['views/**'],
options: {
livereload: true
}
},
js: {
files: ['public/js/**', 'models/**/*/js', '/schemas/**/*.js'],
//tasks: ['jshint'],
options: {
livereload: true //當檔案出現改動的時候會重新啟動服務
}
}
},
nodemon: {
dev: {
options: {
file: 'app.js',
args: [],
ingoredFiles: ['README.md', 'node_modules/**', '.DS_Store'],
watchedExtensions: ['js'],
watchedFolders: ['./'],
debug: true,
delayTime: ,
env: {
PORT:
},
cwd: __dirname
}
}
},
concurrent: {
tasks: ['nodemon', 'watch'],
options: {
logConcurrentOutput: true
}
}
})
grunt.loadNpmTasks('grunt-concurrent');//優化慢任務 如less coffee
grunt.option('force', true);//不要因為文法或警告中斷整個grunt
grunt.registerTask('default', ['concurrent']);//通過concurrent的tasks傳入nodemon和watch 可以執行這兩個任務
}
是以,有檔案修改了grunt會自動重新開機,就不用每次都重新node app.js了。
在項目目錄下執行
$grunt
出現以下資訊,證明運作成功。
Running “concurrent:tasks” (concurrent) task
Running “nodemon:dev” (nodemon) task
Running “watch” task
Waiting…
[nodemon] 1.9.2
[nodemon] to restart at any time, enter
rs
[nodemon] watching: .
[nodemon] starting
node app.js