Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php GULP的新功能-是否需要将项目的所有文件从src目录复制到dist目录?_Php_Gulp - Fatal编程技术网

Php GULP的新功能-是否需要将项目的所有文件从src目录复制到dist目录?

Php GULP的新功能-是否需要将项目的所有文件从src目录复制到dist目录?,php,gulp,Php,Gulp,我已经使用Gulp4一个多星期了,以前从未使用过。 下面的代码是我已经玩了一个星期了,所以它将完成我要求的工作。 我的问题是,是否有必要将项目中的每个文件从src复制到dist目录,尤其是在更改时,因为我有60多个php文件,并且在更改时更新每个php文件对我来说并不高效。 首先,需要在更改时将所有项目文件从src复制到dist。 第二,有没有办法只更新src目录中修改过的一个文件? 然而,在过去,我没有考虑过使用自动工具,比如GULP;重点是在开发过程中使用这些工具来节省时间,以及其他有助于实

我已经使用Gulp4一个多星期了,以前从未使用过。 下面的代码是我已经玩了一个星期了,所以它将完成我要求的工作。 我的问题是,是否有必要将项目中的每个文件从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);

根据帖子解决了我想要达到的目标。要做到这一点,我所需要做的就是用下面显示的额外代码行更改其中一个函数。 此更改就像一个符咒,并且作为一个好处,dist子文件夹中的文件仅在日期/时间戳不同时才显示为覆盖。当从命令行运行$gulp default时,如果文件没有更改,则在运行时没有文件复制到dist子目录,这样可以节省时间。 我要感谢每一个人的有效贡献,这真的帮助了我在不同领域与gulp。 亲切的问候

//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));
}

根据帖子解决了我想要达到的目标。要做到这一点,我所需要做的就是用下面显示的额外代码行更改其中一个函数。 此更改就像一个符咒,并且作为一个好处,dist子文件夹中的文件仅在日期/时间戳不同时才显示为覆盖。当从命令行运行$gulp default时,如果文件没有更改,则在运行时没有文件复制到dist子目录,这样可以节省时间。 我要感谢每一个人的有效贡献,这真的帮助了我在不同领域与gulp。 亲切的问候

//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));
}

Gulp通常只用于编译前端资产:js、css和图像。在这种情况下,这是必要的,因为您通常会缩小这些资产,并生成manifest.json文件以实现缓存破坏。感谢您的回复。您现在所说的非常有意义,因为php脚本是服务器端的,而不是发送到客户端浏览器。问候您。答案取决于您最终如何将这些文件发送到服务器,以及在开发过程中如何在html中使用它们。您可能希望推迟将所有内容移动到某个
dist
文件夹,直到您准备好将文件上载到服务器。这并不是绝对必要的,但我发现在上传之前更容易获得相关服务器文件夹结构的良好镜像。此外,您应该将
var build=gulp.parallel(…)
改为使用
series
。例如,在第一次运行时,您希望
样式
任务在
同步
任务之前完成。不过,只在第一次运行时起作用。Gulp通常只用于编译前端资产:js、css和图像。在这种情况下,这是必要的,因为您通常会缩小这些资产,并生成manifest.json文件以实现缓存破坏。感谢您的回复。您现在所说的非常有意义,因为php脚本是服务器端的,而不是发送到客户端浏览器。问候您。答案取决于您最终如何将这些文件发送到服务器,以及在开发过程中如何在html中使用它们。您可能希望推迟将所有内容移动到某个
dist
文件夹,直到您准备好将文件上载到服务器。这并不是绝对必要的,但我发现在上传之前更容易获得相关服务器文件夹结构的良好镜像。此外,您应该将
var build=gulp.parallel(…)
改为使用
series
。例如,在第一次运行时,您希望
样式
任务在
同步
任务之前完成。不过,只有在第一次跑步时才重要。