Новое в GULP - нужно ли копировать все файлы из каталога src в каталог dist для проекта? - PullRequest
1 голос
/ 07 мая 2019

Я использую 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);

1 Ответ

0 голосов
/ 08 мая 2019

Решил, чего я хотел добиться, основываясь на посте.Для этого все, что мне нужно было сделать, это изменить одну из функций с помощью дополнительной строки кода, показанной ниже.Это изменение работает как талисман, и в качестве преимущества файлы в подпапке dist перезаписываются, только если дата / время отличаются.Это экономит время при запуске $ gulp default из командной строки, когда при запуске никакие файлы не копируются в подкаталоги dist, если файлы не изменились.Я хочу поблагодарить всех и каждого за действительный вклад, который действительно помог мне в разных областях с глотком.С наилучшими пожеланиями

//original function code:
function phpscript()
{
    return gulp.src(phpSRC)
    .pipe(gulp.dest(phpDIST));
}


// changed function code to:
function phpscript()
{
    return gulp.src(phpSRC)
    .pipe(changed(phpDIST))
    .pipe(gulp.dest(phpDIST));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...