这是我的 Gruntfile。我同时运行 nodemon 来运行我的应用程序并观察我的咖啡脚本的变化。
Coffeescript 获取 src 文件并将它们转换为 JS 文件(目前有 3 个,main.coffee、Person.coffee 和 Car.coffee)
我希望我的 Nodemon 在每次这些文件更改时重新启动,以使用最新保存的更改运行它。
问题来了:当只修改了1个 coffee文件时,运行coffee会重新编译所有coffee文件,依次生成3个js文件,依次使nodemon重启3次。这是不可取的,因为我在使用网络请求的应用程序中工作,我不希望它失控。
是否可以让 nodemon 只重启 1 次?
我想连接所有的 JS 文件,但这会弄乱我的 JS 文件的模块化。
我也想过一个接一个地“观看”文件,但如果我达到 50 个文件,那会变得很麻烦。
我怎么解决这个问题?
module.exports = function(grunt) {
"use strict";
grunt.initConfig({
pkg: grunt.file.readJSON( 'package.json' ),
coffee: {
dist: {
join: true,
expand: true,
flatten: true,
cwd: 'src/dist',
src: ['*.coffee'],
dest: 'dist',
ext: '.js'
},
},
watch: {
dist: {
files: ['src/dist/**/*.coffee'],
tasks: 'coffee'
},
},
concurrent: {
dev: {
tasks: ['nodemon', 'watch'],
options: {
logConcurrentOutput: true
}
}
},
nodemon: {
dev: {
script: 'dist/main.js',
},
options:{
watch: "dist/**/*.js"
}
}
});
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-nodemon');
grunt.registerTask("default", ["coffee", "concurrent"]);
};