实现效果:通过一条命令就可以将文件提交到服务器中
准备条件:安装scp2
npm i scp2
以vue打包的dist文件为例,实际应用场景可以是任何文件
在vue项目的根目录创建deploy.ts文件。注:如果使用的不是ts,将文中所有的ts改成js即可
const scpClient = require('scp2')
//测试服务器
const localServer = [
{
host: '192.168.3.9', // 服务器地址
port: 22,
username: 'root',
password: '123456',
path: 'xxx/xxx/dist' //文件存放位置
}
]
// 线上服务器
const longServer = [
{
host: '192.168.3.9', // 服务器地址
port: 22,
username: 'root',
password: '123456',
path: 'xxx/xxx/dist' //文件存放位置
},
...
]
let num = 0
function run(arr) {
scpClient.scp('./dist', arr[num], err => {
if (err) {
console.log(arr[num].host + '部署失败')
throw err
} else {
console.log(arr[num].host + '部署成功')
num++
if (arr[num]) run(arr)
}
})
}
const args = process.argv.slice(2)
run(args[0] === 'local' ? localServer : longServer)
这里服务器地址使用数组的原因是以防需要部署多台服务器。
在package.json中加入一条指令
"deploy": "npm run build && node ./deploy.ts local"
大功告成:此时,你可以使用npm run deploy执行打包命令并将打包后的dist文件发布到测试服务器;在终端使用node deploy.ts将dist文件推送到正式服务器