美文网首页
gulp gulp-sftp 上传服务器

gulp gulp-sftp 上传服务器

作者: royluck | 来源:发表于2019-10-11 17:41 被阅读0次
gulpfile.js文件:
const gulp = require('gulp')
const ftp = require('gulp-sftp')

const config = {
    uploadTest: {
        remotePath: '/data/sit/testqymanage.side.vip', // 部署到服务器的路径
        host: '***.***.***.***',  // ip地址
        auth: 'Server1',
        port: 22  // 端口
    },
    publicPath: '/webApp/',   // 本地程序编译好路径
}

/**
 * 清除本地程序编译好的路径目录文件
 */
const del = require('del')
gulp.task('clean', ['upload'], function(callback) {
    console.log('## 已经成功部署到服务器上')
    console.log('## 清除原来编译的代码')
    del(['.' + config.publicPath], callback)
})


/**
 * 部署到测试环境
 */
gulp.task('upload', function(callback) {
    console.log('## 正在部署到测试服务器上')
    var dev = config.uploadTest
    gulp.src('.' + config.publicPath + '**')
        .pipe(ftp(Object.assign(dev, { callback })))
})

gulp.task('uploadTest', ['upload', 'clean'])
package.json文件:
// 声明npm指令(编译成功并上传服务器)
"scripts": {
        "up:test": "vue-cli-service build && gulp uploadTest"
    },

总结:

此处的upload任务和clean任务是从属关系,clean需要等到upload执行成功之后,再执行clean,但是upload是异步动作,
所以gulp(3.0版本)提供通过回调(callback)的方式通知下一个任务异步已经执行完成。

gulp.task('upload', function(callback) {    
    var dev = config.uploadTest
    gulp.src('.' + config.publicPath + '**')
        .pipe(ftp(Object.assign(dev, { callback }))) //gulp-sftp 提供提供回调方法callback,即当sftp上传成功之后,退出时执行
})

clean收到sftp的回调通知之后,开始执行任务

const del = require('del')
gulp.task('clean', ['upload'], function(callback) { // 注意这里的写法
    console.log('## 已经成功部署到服务器上')
    console.log('## 清除原来编译的代码')
    del(['.' + config.publicPath], callback)    // 删除本地编译文件(vue3.0开始,打包默认会删除本地久的文件,感觉这部可以省略了)
})

上面的config配置文件,没有明文写服务器的密码和账号,而是写在.ftppass文件里(.ftppass是gulp-sftp的配置文件,gulp运行时会自动去找,两者通过上述字段'auth'关联)

// 为了保证ftp账号安全,将FTP账号密码配置放在单独的文件中,并添加至版本控制系统的禁用列表中
{
    "Server1": {
        "user": "root",
        "pass": "xxxxxxx"
    }
}

上面是gulp3.0版本的写法,似乎4.0版本之后,写法又改了。如task方法已经不被推荐了,但是为了兼容,4.0版本还是能运行task方法。


额外:
image.png
image.png

相关文章

  • gulp gulp-sftp 上传服务器

    gulpfile.js文件: package.json文件: 总结: 此处的upload任务和clean任务是从属...

  • Gulp的使用

    gulp搭建本地服务器 通过gulp模拟本地服务器和刷新 指定文件夹下--新建项目文件夹-- 1)初始化npm 指...

  • 使用ssh对 文件进行上传下载

    文件上传 将本地文件上传到服务器 将服务器中的文件下载到本地 从服务器下载整个目录 上传目录到服务器

  • 项目构建打包gulp

    gulp gulp是NodeJS项目构建工具,它是用来构建我们的项目,而且是把开发中的项目构建成可以放置在服务器的...

  • 基于springboot的文件上传

    文件上传方式 直接上传到应用服务器 上传到oss(阿里云,七牛云) 前端将图片转成Base64编码上传 上传服务器...

  • CentOS文件上传与下载命令

    文件上传与下载 参考网页 上传文件到服务器 1、mac上传文件到Linux服务器 scp 文件名 用户名@服务器i...

  • docker启动、重启、日志查看命令

    1、连接测试环境服务器地址:192.168.207.18打好jar包上传至服务器,FTP上传路径(注意:上传之后需...

  • POST请求之表单上传图片

    POST请求之表单上传图片 表单上传: 表单上传一般是用于上传大型文件给服务器,比如图片、视频、音频等,由于服务器...

  • 2018-11-14

    gulp集成本地服务器: 踩坑gulp后总结出来的结果,这只是小女的一个总结,如有错误之处,还请大佬们指出~~~大...

  • 前端自动化工具打包gulp学习之路

    gulp作为前端构建项目的一个工具,自己理解gulp主要方面的作用:1.构建本地服务器。2.快速构建项目。3.对代...

网友评论

      本文标题:gulp gulp-sftp 上传服务器

      本文链接:https://www.haomeiwen.com/subject/xdrxmctx.html