@qse/ssh-sftp
简单易用的 SFTP 工具,可以上传/忽略/删除远程的文件
安装
# 全局
npm i @qse/ssh-sftp -g
# 局部
npm i @qse/ssh-sftp -D
使用
- 首先初始化一份配置文件
npx ssh-sftp init
-
将生成的
.sftprc.json
文件里的信息填写完整 -
添加脚本到
package.json
{
"scripts": {
"deploy": "ssh-sftp"
}
}
建议在部署前使用npx ssh-sftp ls
查看哪些文件会被上传或删除
字段说明
.sftprc.json
schema定义 http://www.zhidianbao.cn:8088/qsxxwapdev/edu-ssh-sftp/sftprc.schema.json
字段名 | 类型 | 描述 | 默认值 |
---|---|---|---|
localPath | string |
'dist' |
|
remotePath | string |
- | |
connectOptions | ConnectOptions |
登录信息 | - |
ignore | string[] |
忽略localPath 中的部分文件,glob 类型 |
['**/*.LICENSE.txt'] |
cleanRemoteFiles | boolean | string[] |
清空远程文件夹,或按glob 匹配清空远程部分文件 |
true |
securityLock | boolean |
安全锁,默认开启 | true |
keepAlive | boolean |
保持连接 | false |
noWarn | boolean |
禁止提示 | false |
skipPrompt | boolean |
跳过询问,全部同意 | false |
preset | {context: string; folder?: string; server?:string} |
预设登录项 | - |
preset.context
目前只有三个值 "qsxxwapdev", "eduwebngv1", "qsxxadminv1"
preset.folder
文件夹名称默认使用项目名称,也可自定义文件夹名称,支持多层文件夹,例如 parent/child
preset.server
部署服务器地址 "19", "171"
connectOptions
字段名 | 类型 | 描述 |
---|---|---|
host | string |
|
port | number |
|
username | string |
|
password | string |
securityLock
安全锁 默认开启,会校验项目名称与远程地址是否匹配防止误传,关闭后忽略验证
Commands
ssh-sftp init
初始化生成配置文件 .sftprc.json
ssh-sftp ls
列出所有需要上传/删除/忽略的文件
ssh-sftp ls -u
单独列出所有需要上传的文件
ssh-sftp ls -d
单独列出所有需要删除的文件
ssh-sftp ls -i
单独列出所有忽略的文件