@dllcnx/auto-deploy
v2.1.1
Published
自动部署脚本
Downloads
4
Readme
使用方法:
原项目@dllcn/auto-deploy的升级版,原账号因为邮箱的问题无法接着迭代发布。
- 下载项目
npm install @dllcnx/auto-deploy -D
- 在
package.json
的scripts
添加执行命令
"deploy": "node ./node_modules/@dllcnx/auto-deploy"
- 在项目根目录创建
deploy.config.js
文件,可配置多个发布服务,例如以下配置了三个:
// 配置示例,具体配置看配置
module.exports = Object.freeze({
ftp: {//ftp配置
NAME: "ftp发布",
SERVER_HOST: 'xxx', // 服务器地址
USER: 'root', // 用户名
PASSWORD: 'xxx', //密码,需加密,加密页面参考下面链接
REMOTE_ROOT: '/web/test/', // 需要上传的服务器目录地址 如 /usr/local/nginx/html
LOCAL_PATH: "dist", // 需要上传文件夹路径,默认dist
PORT: 5521,
TYPE: "ftp", // ftp,sftp,ssh 模认ssh
FTP_CONFIG:{
DELETE_REMOTE: true,
...
}
},
sftp: {//ftp配置
NAME: "sftp发布",
SERVER_HOST: 'xxx', // 服务器地址
USER: 'root', // 用户名
PASSWORD: 'xxx', //密码,需加密,加密页面参考下面链接
REMOTE_ROOT: '/web/test/', // 需要上传的服务器目录地址 如 /usr/local/nginx/html
LOCAL_PATH: "dist", // 需要上传文件夹路径,默认dist
PORT: 5521,
TYPE: "ftp", // ftp,sftp,ssh 模认ssh
FTP_CONFIG:{
DELETE_REMOTE: true,
...
}
},
ssh: {//ssh
NAME: "sftp发布",
SERVER_HOST: 'xxx',
USER: 'root',
//方式一 用秘钥登录服务器(推荐), private 本机私钥文件地址(需要在服务器用户目录 一般是 /root/.ssh/authorized_keys 配置公钥 并该文件权限为 600, (.ssh文件夹一般默认隐藏)
// PRIVATE_KEY: 'C:/Users/Html5/.ssh/id_rsa',
//方式二,密码
PASSWORD: 'xxx',//密码,需加密,加密页面参考下面链接
REMOTE_ROOT: '/var/local/llcn', // 需要上传的服务器目录地址 如 /usr/local/nginx/html
LOCAL_PATH: 'dist/', // 需要上传文件夹路径,默认dist
PORT: 22,
SSH_CONFIG: {
BACKUP: true,
...
}
}
})
- 执行
npm run deploy
发布命令
配置
基础配置
- name: 配置名称,默认采用key值
- SERVER_HOST: 服务器地址
- USER: 服务器用户名
- PASSWORD: 密码
- PRIVATE_KEY: [ssh推荐授权配置,与PASSWORD选用一样即可],用秘钥登录服务器(推荐)的秘钥地址, private 本机私钥文件地址(需要在服务器用户目录 一般是
/root/.ssh/authorized_keys
配置公钥 并该文件权限为 600, (.ssh文件夹一般默认隐藏) - LOCAL_PATH: 需要上传文件夹路径,默认dist
- REMOTE_ROOT: 服务器路径
- PORT: 端口
- LOADINGSTYLE: [非必须],进度动画,默认为
arrow4
加载动画 有dots
至dots12
如dots6
,line
,pipe
,star
,arrow
至arrow4
等等 - TYPE:[非必须],上传方式,默认
ssh
,还可选择ftp
,sftp
- SSH_CONFIG: [非必须],ssh模式下的扩展配置
- FTP_CONFIG:[非必须],ftp和sftp模式下的扩展配置
SSH_CONFIG
- SSH_CONFIG.BACKUP: 是否备份,默认false
- SSH_CONFIG.DELETE_LOCAL_PACKAGE: 成功后是否删除本地压缩包,默认false
- SSH_CONFIG.BUILD_SHELL: 是否启动自动上传前编译,如果启用,填入编译命令
- SSH_CONFIG.EXTENDS: 任务结束后,有时有的操作需要其他命令支持,可以使用扩展,填入自己要用的命令数组.例如:['cd demo', 'rm -rf *']
FTP_CONFIG
- FTP_CONFIG.DELETE_REMOTE: 如果为真,则在上传前删除目标上的所有现有文件
- FTP_CONFIG.INCLUDE: 默认["*", "*\**"], 将上传除
.
开头文件以外的所有文件 - FTP_CONFIG.EXCLUDE: 模认排除sourcemaps和node_modules中的所有文件(包括
.
开头文件) - FTP_CONFIG.FORCEPASY: 强制被动模式(未发送EPSV命令)
加密页面
在线加密页面或者直接访问项目根目录单页面,加密目前只是简单混淆,防止密码明文直接暴漏到配置文件,但是会查看源码依旧存在暴漏风险,所以建议ssh的key模式授权登录。