使用gulp实现项目文件更改自动同步到服务器文件夹

前提:安装node

  1. 全局安装gulp
npm install gulp -g
  1. 初始化项目
    在项目根目录下打开cmd(命令行)运行:
npm init

一路回车,就会在项目的文件夹下产生一个package.json文件
在路径下会形成这样的一个.json文件(部分内容为后添加的)

{
  "name": "gulptest",//项目名称(必须)不能有大写
  "version": "0.0.1",//项目版本(必须)
  "description": "这是一个gulp的测试程序",//项目描述(必须)
"homepage": "",   //项目主页
  "main": "index.js",//入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [//关键词
    "gulp"
  ],
  "author": "jiaaaaaqi",//作者
  "license": "ISC"//项目许可协议
"devDependencies": {    //项目依赖的插件
    "gulp": "^4.0.0",
    "gulp-less": "^3.0.0"
  }
}
  1. 本地安装gulp(在项目目录下安装gulp)
    此步骤的目的是:把gulp里的所有的js文件从服务器上下载到项目目录下(node_modules)
  • 把当前目录转到项目目录:cd 项目目录,或者在项目目录下,按住shift键,同时点击鼠标右键,选择“在此处打开命令行”(windows10的话选择在此处打开Powershell窗口)
  • 在cmd/Powershell(命令行)执行:
    npm install gulp --save-dev

安装完成后,就会在项目目录下产生一个node_modules文件

  1. 使用gulp实现文件热同步
    在项目的根目录建立 gulpfile.js文件。在这个js文件中写上实现热同步的js代码(gulp能实现的功能很多很强大,此处仅展示实现热同步项目所有内容的代码)
var gulp = require("gulp");

//监听任务
gulp.task("watch-all",async ()=>{
    //复制文件
    gulp.watch("./**/*",async ()=>{ //监听项目开发路径下所有的内容(包括子文件夹,不管有多少级)
        gulp.src("./**/*") //项目开发路径下所有的内容
        .pipe(gulp.dest("D:\\phpStudy\\WWW\\1more")); //项目发布路径(服务器文件夹)
    });
}); 
/**
*  gulp.src()  是读取将要处理的文件,即源文件
*  pipe() 管道,是如何处理该文件(如:sass编译,复制文件,压缩文件等)。
*  gulp.dest()  是处理后的文件的路径,即目的文件。
**/

常见问题:

如果出现了cannot find module '***'表示该模块没有安装成功,
执行npm install gulp *** --save-dev,就可以单独安装该模块。

  1. 正在进行的项目如何用gulp:
    1、新建空文件夹作为项目的文件夹(项目文件夹不要用 /gulp 命名)
    2、用npm初始化项目:用npm init命令产生package.json文件(第2步)
    3、本地安装gulp npm install gulp --save-dev
    4、把项目目前的所有文件拷贝的到新建的项目文件夹里
    5、在项目根目录下写gulpfile.js的代码。
这是一款 Gulp 的插件,其功能是使源目录和目标目录之间的文件操作保持同步,当检测到源目录的文件有增加/删除/更新时,会自动同步到目标目录。Github:https://github.com/kayo5994/gulp-file-sync安装npm install --save-dev gulp-file-sync使用var gulp = require('gulp'),     fileSync = require('gulp-file-sync'); gulp.task('sync', function() {   gulp.watch(['src/*.*'], function() {     fileSync('src', 'dest', {recursive: false});   }); });API 列表fileSync('source directory', 'destination directory', options)'source directory' and 'destination directory'type: String当 'source directory' 目录发生任何文件变化时会自动同步到 'destination directory' 目录。options.recursivetype: Booleandefault: true是否对目录递归调用。options.ignoretype: string or array or regex or function排除特定的文件,支持字符串,正则,函数(返回值是被排除的文件),例如:// ignore all .log files fileSync('source directory', 'destination directory', {   ignore: '.log'   }) fileSync('source directory', 'destination directory', {   ignore: [/^\.log$/i, '.cache'] // Exclude all .log and .cache files }) fileSync('source directory', 'destination directory', {   ignore: /^\.log$/i  }) fileSync('source directory', 'destination directory', {   ignore: function(dir, file) {             return file === '.log';           }  })options.addFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util'); function(fullPathSrc, fullPathDest) {   gutil.log('同步增加文件到 '   fullPathDest); }当 source directory 有新增文件时会调用该方法。fullPathSrc - source directory 目录中新增文件的路径。fullPathDest - destination directory 目录中同步新增的文件的路径。options.deleteFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util'); function(fullPathSrc, fullPathDest) {   gutil.log('同步删除文件 '   fullPathDest); }当 source directory 有文件被删除时会调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。fullPathDest - destination directory 目录中同步删除的文件的路径。options.updateFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util'); function(fullPathSrc, fullPathDest) {   gutil.log('同步修改文件 '   fullPathDest); }当 source directory 有文件被修改时会调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。fullPathDest - destination directory 目录中同步修改的文件的路径。options.beforeAddFileCallbacktype: function(fullPathSrc)当 source directory 有新增文件,但并未开始同步时调用该方法。fullPathSrc - source directory 目录中新增文件的路径。options.beforeDeleteFileCallbacktype: function(fullPathSrc)当 source directory 有文件被删除,但并未开始同步删除时调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。options.beforeUpdateFileCallbacktype: function(fullPathSrc)当 source directory 有文件被修改,但并未开始同步修改时调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。 标签:GulpFileSync
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值