赞
踩
实现效果:通过一条命令就可以将文件提交到服务器中
准备条件:安装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将dist文件推送到正式服务器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。