나는 서버 제거시 꿀꺽 꿀꺽 마시고 watcher가 켜져있는 js 및 scss에 대한 작업을 받았습니다. 텍스트 편집기에 파일을 저장할 때마다 서버로 보내져 watcher가 파일 변경을보고 작업을 시작하지만 거의 언제나 컴파일 된 파일에서 방금 저장 한 파일이 누락됩니다.꿀꺽 꿀꺽함 작업은 내가 특별히 저장 한 파일을 놓치고 나머지는 모두 빌드합니다.
그게 무슨 뜻입니까, 나는 main.scss에 모두 포함되어있는 여러 _example.scss를 가지고 있으며, 방금 컴파일 한 모든 _example.scss 파일의 스타일을 출력 할 것입니다. .
이는 JS 및 SASS 작업 모두에서 발생하지만 watcher가 작업을 시작할 때만 발생합니다. Gulp을 중지하고 시작하면 모든 파일이 컴파일됩니다.
는 여기에 내가 터미널에서 오류를 얻을, 그것은 명확하게하려면 gulpfile.js
var gulp = require('gulp');
var gutil = require('gulp-util');
var gulpif = require('gulp-if');
var autoprefixer = require('gulp-autoprefixer');
var sass = require('gulp-sass');
var cleanCSS = require('gulp-clean-css');
var concat = require('gulp-concat');
var plumber = require('gulp-plumber');
var buffer = require('vinyl-buffer');
var source = require('vinyl-source-stream');
var babelify = require('babelify');
var browserify = require('browserify');
var watchify = require('watchify');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var transform = require('vinyl-transform');
var streamify = require('gulp-streamify');
/*
|--------------------------------------------------------------------------
| Same as browserify task, but will also watch for changes and re-compile.
|--------------------------------------------------------------------------
*/
gulp.task('js', function() {
return browserify('./js/main.js')
.transform(babelify, {presets: ["es2015"]})
.bundle()
.on('error', function(e) {
gutil.log(e);
})
.pipe(source('bundle.js'))
.pipe(streamify(uglify()))
.pipe(gulp.dest('./js/build'));
});
/*
|--------------------------------------------------------------------------
| Compile LESS stylesheets.
|--------------------------------------------------------------------------
*/
gulp.task('styles', function() {
return gulp.src('./scss/main.scss')
.pipe(sass.sync().on('error', sass.logError))
.pipe(cleanCSS())
.pipe(gulp.dest('./css'));
});
gulp.task('watch', function() {
gulp.watch('./scss/**/*.scss', ['styles']);
gulp.watch('./js/components/*.js', ['js']);
gulp.watch('./js/*.js', ['js']);
});
gulp.task('default', ['styles', 'js', 'watch']);
입니다. 내 결과는 다음과 같습니다. 대답을 찾고 여기 오는 사람들을 위해
[15:45:50] Using gulpfile /example/path/to/gulpfile.js
[15:45:50] Starting 'styles'...
[15:45:50] Starting 'js'...
[15:45:50] Starting 'watch'...
[15:45:50] Finished 'watch' after 17 ms
[15:45:50] Finished 'styles' after 221 ms
[15:45:53] Finished 'js' after 2.86 s
[15:45:53] Starting 'default'...
[15:45:53] Finished 'default' after 4.96 μs
꿀꺽 마당에 파일이 누락된다고 말하면 스타일 작업이 완료되지만 컴파일 된 CSS에는 방금 편집 한 이전 버전의 sass 부분이 포함됩니다. – biggles
아니, 내 말은,이 파일을 제외하고는 다른 모든 파일을 저장하는 것으로 보이며, 마치 모든 것으로 존재하지 않는 것처럼 파일을 무시합니다. 마치 FTP 전송이 파일을 삭제하고, 파일이 변경되었다고 생각하고, 파일이 누락 된 동안 빌드 한 다음 파일이 서버에 다시 쓰여지는 것처럼 보입니다. 어떤 아이디어? – Teddy
그럼 당신이 저장 한 부분은 컴파일 된 CSS에 전혀 포함되어 있지 않습니까? 꿀꺽 마는 일은 어떻게 시작됩니까? gulp.watch가 서버에서 실행되고 있습니까? 그렇다면 실제로 FTP가 서버에 쓰는 방법과 관련하여 타이밍에 문제가 있다는 것을 추측해야합니다. – biggles