前端项目自动化部署

使用gulp+gulp-ssh实现项目自动化部署

1.使用npm安装gulp+gulp-ssh

npm i gulp gulp-ssh

2.在根目录创建gulpfile.js文件

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

// eslint-disable-next-line @typescript-eslint/camelcase
const APP_ENV = process.env.NODE_ENV;
const isProduct = APP_ENV === 'production';
const outputDir = APP_ENV == 'production' ? 'dist' : APP_ENV == 'uat' ? 'test' : 'dev' //构建打包目录
// 需要上传到服务器的路径
// eslint-disable-next-line @typescript-eslint/camelcase
const remotePath = APP_ENV == "production" ? '' : `/home/blind_box_admin/`
const config = {
    ssh: { // 配置服务器地址
        host: isProduct ? '' : '服务器地址',
        port: isProduct ? 22 : 22,
        username: 'root',
        password: isProduct ? '' : '替换服务器密码',
    },
    remotePath,
    commands: [
        // 删除现有文件
        `rm -rf ${remotePath}`,
    ],
}
const gulpSSH = new GulpSSH({
    ignoreErrors: false,
    sshConfig: config.ssh,
})
/**
 * 上传前先删除服务器上现有文件...
 */
gulp.task('execSSH', () => {
    console.log('删除服务器上现有文件...')
    return gulpSSH.shell(config.commands, {
            filePath: 'commands.log'
        })
        .pipe(gulp.dest('logs'))
})
/**
 * 上传文件到服务器
 */

gulp.task('deploy', gulp.series('execSSH', done => {
    console.log('2s后开始上传文件到服务器...')
    setTimeout(() => {
        // eslint-disable-next-line @typescript-eslint/camelcase
        //这里可以将`./test/**`改成变量根据不同环境上传到不同服务器
        gulp.src(`./test/**`)
            .pipe(gulpSSH.dest(config.remotePath))
        console.log('上传完毕.....')
        done();
    }, 2000)
}))

3.配置package.json命令
增加打包命令

 "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test": "vue-cli-service build --mode test",
    "dev": "vue-cli-service build --mode dev",
    "deploy:test": "npm run test && gulp deploy"
  },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值