使用 gulp gulp-ssh 自动上传代码
使用 gulp gulp-ssh 自动上传代码
1. 安装 gulp 和 gulp
npm i gulp gulp-ssh -save -dev
2. 创建 配置文件
npm 配置文件
"scripts": {
"deploy:test": "npm run test && gulp deploy"
},
deploy // 创建任务的名称
const gulp = require('gulp')
const GulpSSH = require('gulp-ssh')
const { APP_ENV, npm_package_name } = process.env;
const isProduct = APP_ENV === 'production';
// 需要上传到服务器的路径
const remotePath = `/home/public/docker/main/${npm_package_name}`
const config = {
ssh: { // 正式
host: isProduct ? '' : '192.168.31.227',
port: isProduct ? 22 : 8822,
username: 'root',
password: isProduct ? '' : 'a1234567',
},
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(() => {
gulp.src(`./${npm_package_name}/**`)
.pipe(gulpSSH.dest(config.remotePath))
console.log('上传完毕.....')
done();
}, 2000)
}))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)