现在存在的问题
每次打包完, 都要打开 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
复制 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
谢谢阅读
scp
楼上正解。还要啥FTP
大约2009年以前见过php和java项目很多都是通过ftp部署的。服务器win和linux都有,那会ftp用的还是非常多的。
@axetroy 学习了
@yakczh 学习了
为什么不用CI/CD 工具直接从Git仓库直接pull代码而要手工打包上传??
abc
good
@yakczh good
good
22
可以的
@kenshinji 不需要把生产代码放入git仓库
Linux scp命令 挺好的, 前端项目都有node环境, publish-sftp 利于集成, 能跨平台
@kenshinji 即使除去编译后的静态文件不在代码库里,CI如果和服务器不在一个机该怎么办?说到底还是要用工具。比如ansible,针对单机楼主工具还是很不错的,很具有极客精神
@xiaoxiaojx 不明白你的意思,什么叫不把生产代码放入git仓库?能详细说说么?在我看来跟生产环境相关的只有一些配置参数啥的,这些不放到git仓库是应该的,但是代码。。。
@zy445566 没错啊,CI也能传输到生产环境服务器,这个没问题。我也没说楼主做工具不好,只是觉得专门做个工具传文件有点令人疑惑。。。
@kenshinji 我说的是打包生成的 js 代码文件, 直接上传到服务器就行了 …
服务器是Windows咋办