tl-publish
v1.0.2
Published
使用nodeJs将项目部署到指定服务器。
Downloads
14
Readme
简介(测试版请勿使用)
使用nodeJs将项目部署到指定服务器。
- 将本地目录复制到服务器指定目录。
- 将本地项目目录压缩为zip文件,在传输到服务器,在解压缩。
- 备份服务器指定目录存储到本地为zip文件。
- 将备份zip文件发布到服务器。
安装
npm i -D tl-publish
demo
- 将本地目录拷贝到服务器目录
const fs = require('fs');
const {uploadDir} = require('tl-publish');
uploadDir(`./www`, `/var/www`, {
host: '192.168.1.100',
port: 21,
username: 'ubuntu',
privateKey: fs.readFileSync(`./id_rsa`)
});
- 备份服务器指定目录存储到本地为zip文件。
const { backup } = require('tl-publish');
backup({
tip: '测试',
key: 'test',
server: {
// 服务器部署项目地址
projectRootPath: '/var/www/Cloud_CFS/Assets/test',
connectConfig: {
host: '192.168.1.100',
port: 88888,
username: 'root',
password: '123456'
},
},
local: {
// 本地备份路径
backupDir: './backup'
}
});
- 将备份zip文件发布到服务器。
const { back } = require('tl-publish');
back({
tip: '测试',
key: 'test',
server: {
// 服务器部署项目地址
projectRootPath: '/var/www/Cloud_CFS/Assets/test',
connectConfig: {
host: '192.168.1.100',
port: 88888,
username: 'root',
password: '123456'
},
},
local: {
// 本地备份路径
backupDir: './backup'
}
});
- 将本地项目目录压缩为zip文件,在传输到服务器,在解压缩。
const { publish } = require('tl-publish');
const config = {
tip: '测试',
key: 'test',
server: {
// 服务器部署项目地址
projectRootPath: '/var/www/Cloud_CFS/Assets/test',
connectConfig: {
host: '192.168.1.100',
port: 88888,
username: 'root',
password: '123456'
},
// 上传前服务器运行命令
beforeUploadCmds: [
`rm -rf /var/www/Cloud_CFS/Assets/test/*`,
],
// 上传后服务器运行命令
afterUploadCmds: [
`unzip -o /var/www/Cloud_CFS/Assets/test/test.zip -d /var/www/Cloud_CFS/Assets/test/`,
`sudo chmod -R 755 /var/www/Cloud_CFS/Assets/test`,
`rm -f /var/www/Cloud_CFS/Assets/test/test.zip`,
]
},
local: {
// 要打包上传的目录
distPath: './www',
// 存放压缩文件目录
zipDir: './zip',
backupDir: './backup'
}
}
publish(config);