/ / Automatycznie skompiluj plik * .jison z węzłem - node.js

Automatycznie skompiluj plik * .jison z węzłem - node.js

Mam dwa pliki z .jison rozszerzenie w folderze. Za każdym razem, gdy zapisuję, lubię uruchamiać polecenie jison [the_file].jison. Jak to zrobić za pomocą węzła? Nodemon i łyk wydają się być poprawnym rozwiązaniem, ale nie mam żadnego doświadczenia z nimi i lubię to robić

Odpowiedzi:

1 dla odpowiedzi № 1

Z łykiem byłoby to całkiem proste. Kluczem jest ustawienie a watch która wyzwala zadanie za każdym razem, gdy plik się zmieni:

coś takiego powinno Ci zacząć:

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 więc powyżej definiujemy zadanie o nazwie jison, obserwuj wszelkie zmiany .jison pliki i skonfiguruj default zadanie. gulp-exec jest wprowadzany, aby uruchamiać polecenia basha.


0 dla odpowiedzi nr 2

Jeśli chcesz użyć Chrząknięcie, po prostu zainstaluj npm "grunt" "grunt-shell" "grunt-contrib-watch" Oto próbka dla twojego 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"]);

};

Następnie możesz użyć albo grunt aby uruchomić domyślne zadanie (skompilować plik jison) lub użyć grunt watch aby czekać na zmiany w określonych plikach