/ / नए चक्र चलाने से पहले आवश्यक कार्य समाप्त होने तक प्रतीक्षा करने के लिए gulp.watch को कैसे बताएं? - जावास्क्रिप्ट, रिएक्टज, टाइपस्क्रिप्ट, गल्प, फ्रंटेंड

Gulp.watch को तब तक बताने के लिए कैसे कहें जब तक आवश्यक चक्र नए चक्र चलाने से पहले समाप्त नहीं हो जाएंगे? - जावास्क्रिप्ट, प्रतिक्रिया, टाइपस्क्रिप्ट, गल्प, फ्रंटएंड

मुझे एक समस्या है gulp.watch.

TLDR: कैसे कहो gulp.watch नए चक्र चलाने से पहले आवश्यक कार्यों को पूरा होने तक इंतजार करने के लिए नहीं?

कारण: मेरे तीन कार्य हैं: clean, build, तथा watch। कार्य clean निर्देशिका, कार्य को हटाता है build एक ही डायरेक्टरी में फाइल तैयार करता है (clean के लिए निर्भरता है build)। कार्य watch रन gulp.watch निर्देशिका पर और फिर यह चलता है build (वह चलाता है clean)।

लेकिन कभी - कभी watch कार्य नया चलता है build पिछले से पहले build समाप्त हो गया है और एक त्रुटि होती है: build निर्देशिका और करने के लिए लिखना जारी है clean निर्देशिका को हटाने की कोशिश करता है (बेशक, ENOTEMPTY त्रुटि होती है)।

यह समस्या तब होती है जब मैं चलता हूं gulp watch आदेश।

मेरे Gulpfile.js:

var gulp = require("gulp");
var ts = require("gulp-typescript");
var tslint = require("gulp-tslint");
var rename = require("gulp-rename");
var del = require("del");

var tsProject = ts.createProject("tsconfig.json");
var tsSources = ["app/**/*.ts", "app/**/*.tsx"];

gulp.task("clean", function() {
return del(["built"]);
});

gulp.task("build", ["clean"], function() {
return gulp.src(tsSources)
.pipe(ts(tsProject)).js
.pipe(rename({extname: ".js"}))
.pipe(gulp.dest("built"));
});

gulp.task("tslint", ["clean"], function() {
return gulp.src(tsSources)
.pipe(tslint())
.pipe(tslint.report("msbuild", {
emitError: false,
summarizeFailureOutput: false
}));
});

gulp.task("watch", ["build", "tslint"], function() {
return gulp.watch(tsProject.config.filesGlob, ["build", "tslint"]);
});

gulp.task("default", ["build", "tslint"]);

उत्तर:

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

निम्नलिखित कोड के उपयोग की सफाई के लिए: -

gulp.task("clean", function() {
del.sync([
path.join(__dirname, builtPath, "**/*.js"),
], {
force: true
});
});