В частности, что заставляет мой gulpfile. js, работающий в локальном фоновом режиме, использовать высокую загрузку ЦП? Как я могу это исправить? - PullRequest
0 голосов
/ 16 января 2020

Вот gulpfile, который включает вентиляторы через 15 минут. Очевидно, что что-то чрезмерно ищет изменения, но я не могу это выяснить.

const { src, dest, task, watch } = require('gulp');

// CSS related plugins
var sass         = require( 'gulp-sass' );
var autoprefixer = require( 'gulp-autoprefixer' );

// JS related plugins
var uglify       = require( 'gulp-uglify' );
var babelify     = require( 'babelify' );
var browserify   = require( 'browserify' );
var source       = require( 'vinyl-source-stream' );
var buffer       = require( 'vinyl-buffer' );
var stripDebug   = require( 'gulp-strip-debug' );
var concat       = require( 'gulp-concat' );

// Utility plugins
var rename       = require( 'gulp-rename' );
var sourcemaps   = require( 'gulp-sourcemaps' );
var notify       = require( 'gulp-notify' );
var plumber      = require( 'gulp-plumber' );
var options      = require( 'gulp-options' );
var gulpif       = require( 'gulp-if' );

// Browers related plugins
var browserSync  = require( 'browser-sync' ).create();

// Project related variables
var styleSRC     = './src/scss/style.scss';
var styleURL     = './dist/css/';
var mapURL       = './';

var jsSRC        = './src/js/';
var jsFront      = 'main.js';
var jsFiles      = [ jsFront ];
var jsURL        = './dist/js/';

var imgSRC       = './src/images/**/*';
var imgURL       = './dist/images/';

var phpSRC     = './src/**/*.php';
var phpURL     = './dist/';

var styleWatch   = './src/scss/**/*.scss';
var jsWatch      = './src/js/**/*.js';
var imgWatch     = './src/images/**/*.*';
var phpWatch    = './src/**/*.php';

// Tasks
function browser_sync() {
    browserSync.init({
        proxy: "http://127.0.0.1/my_directory/index.php",
    // base: "./dist/",
    injectChanges: true,
    port: 8000
  });

function reload(done) {
    browserSync.reload();
    done();
}
function css(done) {
    src( [ styleSRC ] )
        .pipe( sourcemaps.init() )
        .pipe( sass({
            errLogToConsole: true,
            outputStyle: 'compressed'
        }) )
        .on( 'error', console.error.bind( console ) )
        .pipe( autoprefixer())
        .pipe( rename( { suffix: '.min' } ) )
        .pipe( sourcemaps.write( mapURL ) )
        .pipe( dest( styleURL ) )
        .pipe( browserSync.stream() );
    done();
};

function js(done) {
    jsFiles.map( function( entry ) {
        return browserify({
            entries: [jsSRC + entry]
        })
        .transform( babelify, { presets: [ '@babel/preset-env' ] } )
        .bundle()
        .pipe( source( entry ) )
        .pipe( rename( {
            extname: '.min.js'
        } ) )
        .pipe( buffer() )
        .pipe( gulpif( options.has( 'production' ), stripDebug() ) )
        .pipe( sourcemaps.init({ loadMaps: true }) )
        .pipe( uglify() )
        .pipe( sourcemaps.write( '.' ) )
        .pipe( dest( jsURL ) )
        .pipe( browserSync.stream() );
    });
    done();
};

function triggerPlumber( src_file, dest_file ) {
    return src( src_file )
        .pipe( plumber() )
        .pipe( dest( dest_file ) );
}

function images() {
    return triggerPlumber( imgSRC, imgURL );
};

function php() {
    return triggerPlumber( phpSRC, phpURL );
};

function watch_files() {
    gulp.watch(styleWatch, series(css, reload));
    gulp.watch(jsWatch, series(js, reload));
    watch(imgWatch, series(images, reload));
    gulp.watch(phpWatch, series(php, reload));
    src(jsURL + 'main.min.js')
}

task("css", css);
task("js", js);
task("images", images);
task("php", php);
task("default", parallel(css, js, images, php));
task("watch", parallel(browser_sync, watch_files));

Я собираюсь 2-в-один с другой проблемой ... Так как localhost: 3000 по умолчанию в моем каталоге 'My User / myname / Sites Web Root' я настроил браузер-syn c, чтобы использовать localhost: 8000, чтобы специально указывать на мой индексный файл. php. Я чувствую, что это тоже не правильно.

Любая идея по их устранению будет принята с благодарностью.

...