fuchengwei / deploy-cli-service

前端自动部署脚手架服务
MIT License
429 stars 87 forks source link

能不能不删除服务器上的资源,直接进行覆盖 #1

Closed hooray closed 4 years ago

hooray commented 4 years ago

现在会删除配置目录下的资源后,然后上传,但实际开发中,服务器上的目录下可能还有其它资源,删除这个操作很危险,建议做成配置项

hooray commented 4 years ago

其次,本地打包目录在上传完后,建议不要直接删除,最好也做成配置项

chaorenluo commented 4 years ago

image @hooray 我觉得你可以自己改造一下

fuchengwei commented 4 years ago

好的 后面这个操作可以做成配置项 下个版本加入这个功能

hooray commented 4 years ago

image @hooray 我觉得你可以自己改造一下

我自己改造的话,是到node-modules里直接改代码是吧,但这样没办法做协同了,其它同事拉取项目下来安装依赖后,也还是要再去node-modules里修改一下才行。

或者你可以和我说下你这个项目在本地是如何进行调试的,我 fork 一份修改好提 pr 过来,也就是在 init 的时候增加一个配置可选项,例如 isDeleteBeforeUpload ,为 true 的时候先删除服务端的文件再上传,为 false 则跳过删除操作直接上传。

chaorenluo commented 4 years ago

图片 @hooray我觉得你可以自己改造一下

我自己改造的话,是到node-modules里直接改代码是吧,但这样没办法做协同了,其他同事拉取项目下来安装依赖后,也还是要再去node-modules里修改一下才行。

或者您可以和我说下你这个项目在本地是如何进行调试的,我fork一份修改好提pr过来,也就是在init的时候增加一个配置可选项,例如isDeleteBeforeUpload,为true的时候先删除服务端的文件再上传,为false则跳过删除操作直接上传。

他是通过commander.js这个库做的封装,初始化的地方是lib/service.js fork 一份根据你想咋弄就咋弄

hooray commented 4 years ago

@chaorenluo 害,看错了,我还以为你的第一条回复是作者回复的,既然作者打算加入,我就不自己捣鼓了,等下一版更新

liege17 commented 4 years ago

备份线上资源后替换不是更好吗

zzetao commented 4 years ago

不建议直接删除远程文件,因为将目录删除后,假设上传新文件需要10s,那这 10s 内有用户访问将 404


有两个办法:

  1. 将文件上传到另一个 temp 目录,上传完毕后,再进行重命名和删除
  2. 采用目录软链接方式,具体可参考 https://github.com/zzetao/mandy
fuchengwei commented 4 years ago

以支持远程文件是否删除的配置