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 № 1Z ł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