나는 그런 꿀꺽 꿀꺽 스크립트를 썼다.
간단히 말해서이 스크립트는 다음을 수행합니다.
이 스크립트는 때때로 (항상은 아님) 실패하지만 그 이유는 무엇입니까?
var gulp = require('gulp'),
babel = require('gulp-babel'),
rename = require('gulp-rename'),
concat = require('gulp-concat');
var runSequence = require('run-sequence'),
del = require('del'),
exec = require('child_process').exec;
gulp.task('build', function () {
gulp.src('*.es')
.pipe(babel())
.pipe(rename({extname: '.js'}))
.pipe(gulp.dest('./dist'))
.pipe(concat('app.js'))
.pipe(gulp.dest('./dist'));
});
gulp.task('clean', function () {
del(['dist']);
});
gulp.task('exec', function (cb) {
exec('node dist/app.js', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
gulp.task('default', function (cb) {
runSequence('clean', 'build', 'exec', cb);
});
오류 메시지는 다음과 같습니다.
someone@somewhere:~/***/***% gulp
[15:17:15] Using gulpfile ~/***/***/gulpfile.js
[15:17:15] Starting 'default'...
[15:17:15] Starting 'clean'...
[15:17:15] Finished 'clean' after 4.28 ms
[15:17:15] Starting 'build'...
[15:17:15] Finished 'build' after 12 ms
[15:17:15] Starting 'exec'...
module.js:338
throw err;
^
Error: Cannot find module '/***/***/dist/app.js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
[15:17:15] 'exec' errored after 119 ms
[15:17:15] Error: Command failed: /bin/sh -c node dist/app.js
module.js:338
throw err;
^
Error: Cannot find module '/***/***/dist/app.js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
at ChildProcess.exithandler (child_process.js:751:12)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Socket.<anonymous> (child_process.js:1183:11)
at Socket.emit (events.js:107:17)
at Pipe.close (net.js:485:12)
[15:17:15] 'default' errored after 142 ms
[15:17:15] Error: Command failed: /bin/sh -c node dist/app.js
module.js:338
throw err;
^
Error: Cannot find module '/***/***/dist/app.js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
at ChildProcess.exithandler (child_process.js:751:12)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Socket.<anonymous> (child_process.js:1183:11)
at Socket.emit (events.js:107:17)
at Pipe.close (net.js:485:12)
흥미롭게도 "gulp exec"를 다시 실행하면 성공할 것입니다.
gulp가 작업이 언제 완료되었는지 알 수 있도록 작업에서 작업중인 스트림을 반환해야합니다.
var gulp = require('gulp'),
babel = require('gulp-babel'),
rename = require('gulp-rename'),
concat = require('gulp-concat');
var runSequence = require('run-sequence'),
del = require('del'),
exec = require('child_process').exec;
gulp.task('build', function () {
return gulp.src('*.es')
.pipe(babel())
.pipe(rename({extname: '.js'}))
.pipe(gulp.dest('./dist'))
.pipe(concat('app.js'))
.pipe(gulp.dest('./dist'));
});
gulp.task('clean', function () {
return del(['dist']);
});
gulp.task('exec', function (cb) {
exec('node dist/app.js', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
gulp.task('default', function (cb) {
runSequence('clean', 'build', 'exec', cb);
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다