1
일련의 꿀꺽 거리는 작업이 끝날 때 셸 명령을 실행하려고합니다. 필자는 쉘 명령이 일부 파일을 가져 와서 다른 곳으로 복사하기 전에 프로젝트의 파일에 기록 된 변경 사항이 기록되지 않고 있음을 확인했습니다. gulp-shell을 사용하여 쉘 명령을 실행하고 있습니다.꿀꺽 셸 지연
파일 복사 전에 'ls'명령을 실행하면 파일을 복사하기 전에 파일이 모두 작성된 것으로 보았습니다. 이 작업을 수행하는 더 깨끗한 방법이 있습니까?
다음은 gruntfile입니다 :
var gulp = require('gulp');
var shell = require('gulp-shell');
var jshint = require('gulp-jshint');
var changed = require('gulp-changed');
var imagemin = require('gulp-imagemin');
var minifyHTML = require('gulp-minify-html');
var concat = require('gulp-concat');
//Uncomment out this line before going to production
//var stripDebug = require('gulp-strip-debug');
var uglify = require('gulp-uglify');
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
// JS hint task
gulp.task('jshint', function() {
gulp.src('./code/js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
// minify new images
gulp.task('imagemin', function() {
var imgSrc = './code/img/**/*', imgDst = './www/img';
gulp.src(imgSrc)
.pipe(changed(imgDst))
.pipe(imagemin())
.pipe(gulp.dest(imgDst));
});
// minify new or changed HTML pages
gulp.task('htmlpage', function() {
var htmlSrc = './code/*.html', htmlDst = './www';
gulp.src(htmlSrc)
.pipe(changed(htmlDst))
.pipe(minifyHTML())
.pipe(gulp.dest(htmlDst));
});
// JS concat, strip debugging and minify
gulp.task('scripts', function() {
gulp.src(['./code/js/index.js', './code/js/*.js'])
.pipe(concat('script.js'))
//Uncomment out this line before going to production
//.pipe(stripDebug())
.pipe(uglify())
.pipe(gulp.dest('./www/'));
});
// CSS concat, auto-prefix and minify
gulp.task('styles', function() {
gulp.src(['./code/css/*.css'])
.pipe(concat('styles.css'))
.pipe(autoprefix('last 2 versions'))
.pipe(minifyCSS())
.pipe(gulp.dest('./www/'));
});
gulp.task('prepare', shell.task(['ls', 'cordova prepare']));
// default gulp task
gulp.task('default', ['imagemin', 'htmlpage', 'scripts', 'styles', 'prepare'], function() {
});
그것은 준비 작업 - 그것은이 실행될 때, 다른 파일이 아직 실행을 완료하지 않았습니다.
는 내가 전에 완료해야 종속 작업을 설정할 수 있습니다 보인다 내 준비 :
gulp.task('prepare', [styles], shell.task(['ls', 'cordova prepare']));
나는 그것을 테스트하지 않은,하지만 난이 일 것으로 예상?
gulpfile 내용을 붙여 넣으십시오 ... – SteveLacy
아마도 [비동기 작업을 올바르게 처리하고 있지 않습니다] (https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task- 지원하다). – OverZealous
이 링크를 읽었지만 이해가 안되는 일부 파일은 빨리 쓰여지고 다른 사람은 쓸 시간이 필요합니까? – JehandadK