Mám dva súbory s .jison
rozšírenie v priečinku. Po každom uložení chcem spustiť príkaz jison [the_file].jison
, Ako to urobím pomocou uzla? Nodemon a dúšok sa zdajú byť platným riešením, ale nemám žiadne skúsenosti ani s tým, aby som to jednoducho udržal
odpovede:
1 pre odpoveď č. 1S dúškom by to bolo dosť jednoduché. Kľúčom je nastavenie funkcie a watch
ktoré spustia úlohu pri každej zmene súboru:
niečo také by malo začať:
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"]);
Takže vyššie definujeme úlohu s názvom jison
, sledovať všetky zmeny .jison
súborov a nastavte default
úloha. gulp-exec
je privedený na spustenie bash príkazov.
0 pre odpoveď č. 2
Ak chcete používať zachrochtání, stačí nainštalovať npm "grunt" "grunt-shell" "grunt-contrib-watch" Tu je vzorka pre vaše 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"]);
};
Potom môžete použiť buď grunt
aby sa spustila predvolená úloha (kompilácia súboru jison) alebo použite grunt watch
aby ho čakali na zmeny v zadaných súboroch