Я использую GULP 4 чуть больше недели и никогда не использовал его раньше.
Код ниже - это то, с чем я играю уже неделю, чтобы он выполнил ту работу, о которой я просил.
Мой вопрос, нужно ли копировать каждый файл в проекте из каталога src в dist, особенно при изменении, так как у меня более 60 файлов php, и обновление каждого файла php при изменении не кажется мне эффективным.
Во-первых, необходимо скопировать все файлы проекта из src в dist на изменения.
Во-вторых, есть ли способ просто обновить один файл, который был изменен в каталоге src?
Однако в прошлом я не смотрел на использование автоматизированных инструментов, таких как GULP; акцент делается на использовании таких инструментов в процессе разработки, чтобы сэкономить время, наряду с другими преимуществами, которые помогают делу.
Как новичку, потребуется некоторое время, чтобы оценить эти преимущества.
Будем весьма благодарны за любые улучшения, которые вы можете увидеть в отношении приведенного мною кода.
С наилучшими пожеланиями
const gulp = require('gulp');
const php = require('gulp-connect-php');
const sass = require('gulp-sass');
const uglify = require('gulp-uglify');
const lineec = require('gulp-line-ending-corrector');
const browserSync = require('browser-sync').create();
const styleSRC = './src/scss/**/*.scss';
const styleDIST = './dist/css';
const jsSRC = 'src/js/**/*.js';
const jsDIST = './dist/js';
const phpSRC = 'src/php/**/*.php';
const phpDIST = './dist/php';
const htmlSRC = 'src/html/**/*.html';
const htmlDIST = './dist/html';
function style()
{
return gulp.src(styleSRC)
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(gulp.dest(styleDIST))
.pipe(browserSync.stream());
}
function javascript() {
return gulp.src(jsSRC)
.pipe(uglify())
.pipe(lineec())
.pipe(gulp.dest(jsDIST));
}
function phpscript() {
return gulp.src(phpSRC)
.pipe(gulp.dest(phpDIST));
}
function server()
{
php.server({base:'./src/php', port:8010, keepalive:true});
}
function sync()
{
browserSync.init({
proxy: "http://lansdownelions/src/php/login.php",
baseDir: './src/php',
open: true,
notify: false
});
}
function watch()
{
gulp.watch(styleSRC, style);
gulp.watch(jsSRC, javascript);
gulp.watch(jsSRC).on('change', browserSync.reload);
gulp.watch(phpSRC, phpscript);
gulp.watch(phpSRC).on('change', browserSync.reload);
gulp.watch(htmlSRC).on('change', browserSync.reload);
}
exports.style = style;
exports.javascript = javascript;
exports.phpscript = phpscript;
exports.server = server;
exports.sync = sync;
exports.watch = watch;
var build = gulp.parallel(style, javascript, phpscript, sync, server, watch);
gulp.task('default', build);