2016-04-06 2 views
0

В настоящее время я использую Gulp для выполнения различных задач, включая компиляцию и минимизацию SASS (я также использую Gulp Watch). Я имею вопрос, где, когда я вносить изменения в файл (в частности app.scss), он выкладывает довольно неинформативное сообщение об ошибке:Gulp/Node - ошибки в SASS Compile

"C:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" C:\Users\Matthew\PhpstormProjects\mattrick\node_modules\gulp\bin\gulp.js --color --gulpfile c:\Users\Matthew\PhpstormProjects\website\gulpfile.js watch 
[20:48:35] Using gulpfile c:\Users\Matthew\PhpstormProjects\website\gulpfile.js 
[20:48:35] Starting 'watch'... 
[20:48:35] Finished 'watch' after 7.94 ms 
events.js:85 
     throw er; // Unhandled 'error' event 
      ^
Error: ENOENT, stat 'c:\Users\Matthew\PhpstormProjects\website\resources\assets\sass\app.scss___jb_tmp___' 
    at Error (native) 

Process finished with exit code 1 

Я действительно не уверен, что вызывает эту ошибку, и от погуглить , это, по-видимому, происходит во многих разных обстоятельствах. Я не слишком уверен, что я делаю неправильно. Мой файл gulp ниже:

var gulp = require('gulp'); 
var watch = require('gulp-watch'); 
var batch = require('gulp-batch'); 
var sass = require('gulp-sass'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var cleanCSS = require('gulp-clean-css'); 
var plumber = require('gulp-plumber'); 
var del = require('del'); 

var config = { 
    bowerDir: './bower_components/', 
    publicDir: './public', 
}; 

//Build Tasks 
gulp.task('build', ['clean'], function() { 
    gulp.start(['css', 'fonts', 'js']); 
}); 

//Clean Dir 
gulp.task('clean', function() { 
    return del([config.publicDir + "/css", config.publicDir + "/fonts", config.publicDir + "/js"]); 
}); 

//CSS Concat + Minification 
gulp.task('css', function() { 
    return gulp.src(
     [ 
      config.bowerDir + 'bootstrap-sass/assets/stylesheets', 
      config.bowerDir + 'fontawesome/scss', 
      './resources/assets/sass/app.scss' 
     ]) 
     .pipe(plumber()) 
     .pipe(sass({ 
      errLogToConsole: true 
     })) 
     .pipe(cleanCSS({compatibility: 'ie8'})) 
     .pipe(gulp.dest(config.publicDir + '/css')); 
}); 

//Font Awesome 
gulp.task('fonts', function() { 
    return gulp.src(config.bowerDir + '/fontawesome/fonts/**.*') 
     .pipe(plumber()) 
     .pipe(gulp.dest(config.publicDir + '/fonts')); 
}); 

//JavaScript Concat + Uglify 
gulp.task('js', function() { 
    return gulp.src(
     [ 
      config.bowerDir + '/jquery/dist/jquery.min.js', 
      config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.min.js' 
     ]) 
     .pipe(plumber()) 
     .pipe(concat('app.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest(config.publicDir + "/js")); 
}); 

//Watch Task 
gulp.task('watch', function() { 
    watch(['./resources/assets/sass/*', config.bowerDir + '/bootstrap-sass/assets/stylesheets/**'], batch(function(events, done) { 
     gulp.start('build', done); 
    })); 
}); 

//Default Task 
gulp.task('default', ['build']); 

Я бы очень признателен за любую помощь, которую вы могли бы предоставить. Спасибо!

ответ

3

__jb_tmp__ suffix - это временный файл, созданный приложениями JetBrains, такими как PhpStorm. При сохранении файла содержимое файла сначала записывается в временный файл, который затем renamed. К моменту, когда gulp.watch() пытается stat(), файл temp уже ушел.

Попробуйте ограничив gulp.watch() Glob от:

watch(['./resources/assets/sass/*', 

только файлы SASS/SCSS:

watch(['./resources/assets/sass/*.{sass,scss}', 
+0

Большое спасибо! Я не знал, что PhpStorm создал временные файлы, такие как. – mattrick

Смежные вопросы