/ / Auto kompilovať * .jison súbor s uzlom - node.js

Auto kompilovať * .jison súbor s uzlom - node.js

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ď č. 1

S 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