我在文件夹中有两个.jison
扩展名的文件。我每次保存时都喜欢运行命令jison [the_file].jison
。如何使用节点执行此操作? Nodemon和gulp似乎是有效的解决方案,但我没有任何经验,并且喜欢保持简单
答案 0 :(得分:1)
通过gulp,这将非常简单。关键是设置watch
,每次文件更改时都会触发任务:
这样的事情应该让你开始:
var exec = require('gulp-exec');
gulp.task('jison', function() {
return gulp.src(['**/*.jison'])
.pipe(exec('jison <%= file.path %>.jison'));
});
gulp.task('watch', function() {
gulp.watch(['**/*.jison'], ['jison']);
});
gulp.task('default', ['watch', 'jison']);
因此,上面我们定义了一个名为jison
的任务,观察.jison
个文件的任何更改,并设置default
任务。引入gulp-exec
来运行bash命令。
答案 1 :(得分:0)
如果你想使用Grunt,只需安装npm“grunt”“grunt-shell”“grunt-contrib-watch”
以下是Gruntfile.js
module.exports = function(grunt) {
// Define tasks
grunt.initConfig({
watch:{
scripts:{
files: ['<path-to>/<jison-file>.jison'],
tasks: ['shell:jison_compile'],
options: {
interrupt : true
}
}
},
shell: {
jison_compile:{
command: 'jison <path-to>/<jison-file>.jison'
}
},
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['shell:jison_compile']);
};
然后您可以使用grunt
运行它的默认任务(编译jison文件)或使用grunt watch
使其等待指定文件中的更改