你可以使用gulpjs来监视特定文件夹中的任何更改,然后命令它执行某些操作。
根据你的示例,你还想将代码转换为es6。因此,还需要gulp-bable和。如果需要,你可以包含babel-preset-stage-2。所以,你只需将以下代码放入gulpfile.js即可。
gulp.task('build-es2015', () => {
return gulp.src('server.js')
.pipe(babel({
presets: ['es2015']
}))
.pipe(gulp.dest('build'));
});
gulp.task('watch', () => {
gulp.watch(['./app/*.js'], ['build-es2015'])
})
基本上,任务“watch”将持续监视特定文件。当它们被保存时,它将执行任务“build-es2015”以转换为es6。
然后nodemon需要gulp-nodemon,然后您可以在gulpfile.js上执行它
gulp.task('server', () => {
nodemon({
script: 'build/server.js',
ext: 'js',
ignore: [
'server.js',
'node_modules/**',
'test/**',
'build/**'
]
})
.on('restart', () => { console.log(`Server restarted!`) })
})
以上代码将会监视'build/server.js'文件,一旦它被修改,nodemon将自动重启服务器。
gulpfile.js的最后一部分如下:
gulp.task('dev', ['server', 'watch'])
包含执行 gulp 命令所需的任务。
$ gulp dev
或者使用npm命令
"scripts": {
"start": "gulp dev"
}
所以你也可以运行npm run start
。
别忘了在gulpfile.js中要求所有的包。
const gulp = require('gulp')
const babel = require('gulp-babel')
const nodemon = require('gulp-nodemon')