Вот 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. Я чувствую, что это тоже не правильно.
Любая идея по их устранению будет принята с благодарностью.