现在存在的问题
每次打包完, 都要打开 FileZilla 一顿拖拽然后才能上传代码, 那就立马撸一个自动化脚本就完事了
publish-sftp
Github 传送门(
(削除)) 以后一行命令上传本地文件到服务器啦顺便来骗个Star (削除ここまで)
publish-sftp -c // 完事
安全性
项目组已经跑了大半年, 没出过幺蛾子, 可放心使用
实现
基于 ssh2-sftp-client
快速上手
install
sudo npm i publish-sftp -g
sudo npm link publish-sftp
tips
当前目录下需要提供一份 sftp.json
{
"localPath": "./dist",
"remotePath": "/export/App/xxx",
"protectedRemotePath": "/export/App/xxx",
"connect": {
"host": "xxx.xxx.xxx.xx",
"port": 22,
"username": "root",
"password": "123456"
}
}
example
image
复制 localPath 下所有文件到 remotePath/xjx/test, -c 参数为空则是复制到 remotePath, 远程目录不存在会先创建
copy
复制 localPath 下所有文件到 remotePath 目录下, 如果 xxx 有值则是复制到
${remotePath}/${xxx}目录
publish-sftp -c xxx
remove
删除 remotePath 目录, 如果 xxx 有值则是删除
${remotePath}/${xxx}目录, protectedRemotePath 目录是不允许操作的, 所以为了安全是必需要设置的, 一般和 remotePath 值一样即可!
publish-sftp -r xxx
谢谢阅读
@kenshinji 即使除去编译后的静态文件不在代码库里,CI如果和服务器不在一个机该怎么办?说到底还是要用工具。比如ansible,针对单机楼主工具还是很不错的,很具有极客精神
@xiaoxiaojx 不明白你的意思,什么叫不把生产代码放入git仓库?能详细说说么?在我看来跟生产环境相关的只有一些配置参数啥的,这些不放到git仓库是应该的,但是代码。。。