/ / ऑटो संकलन * .jison फ़ाइल नोड - node.js के साथ

ऑटो संकलन * .jison फ़ाइल नोड - node.js के साथ

मेरे पास दो फाइलें हैं .jison एक फ़ोल्डर में विस्तार। हर बार जब मैं बचाता हूं तो मुझे कमांड चलाने की इच्छा होती है jison [the_file].jison। मैं नोड का उपयोग करके ऐसा कैसे करूं? नोडमन और गल्प वैध समाधान की तरह लगते हैं लेकिन मुझे इसका कोई अनुभव नहीं है और इसे सरल रखना पसंद है

उत्तर:

उत्तर № 1 के लिए 1

गल्प के साथ यह बहुत सरल होगा। कुंजी स्थापित करने के लिए कुंजी है 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 बैश आदेश चलाने के लिए लाया गया है।


जवाब के लिए 0 № 2

यदि आप उपयोग करना चाहते हैं असंतोष का शब्द, बस 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 इसे "" डिफ़ॉल्ट कार्य (संकलन जेसन फ़ाइल) चलाने या उपयोग करने के लिए grunt watch निर्दिष्ट फाइलों में बदलाव की प्रतीक्षा रखने के लिए