在webpack工程里使用gulp实现指定文件上传

自动部署的意义

省时、省力、省心

配置环境以及包依赖

需要下载一个nodejs
需要全局安装webpack、gulp包

构建工程

1、在文件中初始化一个webpack工程

npm init 

2、安装包,这里只需要安装两个包

npm i gulp gulp-ssh -d

然后这个目录是这样的
在这里插入图片描述

3、 准备好gulp代码
先创建一个gulpfile.js文件,作为gulp容器

代码如下


const gulp = require('gulp');
const GulpSSH = require('gulp-ssh');

const remotePath = '/usr/nginx/'; // 远程项目地址
const projectName = 'test'; // 远程项目名称
const uploadFile = './test/**', // 当前工程中需要上传的文件目录,目录名随便定义
 
// 需要上传到服务器的路径
const config =  {
      //   remotePath:'/usr/nginx/test',
      remotePath: remotePath + projectName, 
      ssh: {
        // 测试服务器地址
        host: 'xxx.xx.xx.xx',
        port: 22,
        username: 'root',
        password: 'password',
      },
      commands: [
        // 删除现有文件
        // `rm -rf /uer/nginx/test` ( 删除项目目录下所有文件 )
        'rm -rf ' + remotePath + projectName + '/*',
      ],
    },


const gulpSSH = new GulpSSH({
  ignoreErrors: false,
  sshConfig: config.ssh,
});

/**
 *上传前先删除服务器上现有文件
 */
gulp.task('execSSHDelete', () => {
  console.log('删除服务器上现有文件...');
  return gulpSSH
    .shell(config.commands, { filePath: 'log/commands-delete.log' })
    .pipe(gulp.dest('logs'));
});

/**
 * 发布代码
 */
gulp.task('publish', () => {
  console.log('开始上传文件到服务器...');
  // 将当前目录下的文件上传到指定服务器目录下
  return gulp.src([uploadFile]).pipe(gulpSSH.dest(config.remotePath));
});

/**
 * gulp自动化部署
 * gulp.series:按照顺序执行
 * 删除,发布
 */
gulp.task(
  'default',
  gulp.series('execSSHDelete', 'publish', done => {
    console.log('发布完毕...', 'http://' + config.ssh.host + ':8080');
    // Did you forget to signal async completion? 报错后需要调用done,以结束task
    done(); // 在不使用文件流的情况下,向task的函数里传入一个名叫done的回调函数,以结束task
  })
);

4、最后,在当前工程里shell窗口执行gulp命令即可上传

	gulp 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值