如何修复启动时卡住的Gulp监视任务

时间:2019-05-15 17:31:54

标签: npm gulp vagrant

我最近用Vagrant安装替换了Mamp Pro服务器,用于我当前正在处理的网站。切换到Vagrant后,我的Gulp“监视”命令被卡在“启动”上。 Gulp无法正确处理以前一直在执行的任务是什么原因?

我的Gulpfile(在下面发布)没有更改,但是我确实将npm更新到最新版本(6.9.0)并重新安装了node_modules。

我当前的gulpfile:

'use strict';

// Development or production
const dev  = ((process.env.NODE_ENV || 'development').trim().toLowerCase() === 'development');

// Paths
const paths = {

    // Sass/Css
    styles: {
        src: 'sass/**/*.scss',
        dest: '.'
    },

    // Javascript
    scripts: {
        src: ['js/*.js', '!js/theme.js', '!js/customizer.js'],
        dest:'js/dist'
    }

};

// Plugins
const gulp = require('gulp'),

    // Styles
    sass = require('gulp-sass'),
    postcss = require('gulp-postcss'),
    autoprefixer = require('autoprefixer'),
    cssnano = require('cssnano'),

    // Scripts
    concat = require('gulp-concat'),
    uglify = require('gulp-uglify'),
    rename = require('gulp-rename'),

    // Utility & stats
    noop = require('gulp-noop'),
    size = require('gulp-size'),
    sourcemaps = dev ? require('gulp-sourcemaps') : null;

console.log('Gulp', dev ? 'development' : 'production', 'build');

// Node sass compiler
sass.compiler = require('node-sass');

// Style compiler
function style() {
    return (
        gulp
            .src(paths.styles.src)
            .pipe(sourcemaps ? sourcemaps.init() : noop())

            // Output compact css file and log any errors
            .pipe(sass({outputStyle: 'compact'})
                .on('error', sass.logError))

            // Css prefixer and css minification
            .pipe(postcss([autoprefixer(), cssnano()]))

            // Write sourcemaps
            .pipe(sourcemaps ? sourcemaps.write() : noop())

            // Show file sizes
            .pipe(size({ showFiles:true }))

            // Destination for css file
            .pipe(gulp.dest(paths.styles.dest))
    );
}

// Script compiler
function script() {
    return (
        gulp
            .src(paths.scripts.src)

            // Concat all JS files and place them in the dist folder
            .pipe(concat('all.js'))
            .pipe(gulp.dest(paths.scripts.dest))

            // Uglify (minify) the JS file produced in the previous step
            .pipe(uglify())

            // Rename the uglified file
            .pipe(rename({ suffix: '.min' }))

            // Destination for minified js file
            .pipe(gulp.dest(paths.scripts.dest))


    )
}

function watch() {

    // Sassy watcher
    gulp.watch(paths.styles.src, style)

    // Concat and uglify scripts
    gulp.watch(paths.scripts.src, script)

}

exports.watch = watch;

npm -v:6.9.0 Gulp -v:CLI版本2.1.0,本地版本4.0.0

记录生产环境的控制台日志可以正常工作,但是初始化watch任务(预期的[timestamp] Starting 'watch'...以外的其他任务后,没有显示其他(/错误)消息。更改文件也不会在控制台中产生任何有用的日志。

0 个答案:

没有答案