当备份工具遇到 node_modules,真的没有优雅的解决方案吗

2020-12-03 19:15:50 +08:00
 syficy

前端开发,想备份个人文件到外置硬盘和云端,但是 windows 下常见的文件备份相关工具(如 OneDrive 、windows 自带的文件备份工具等)没有提供类似.gitignore 的配置选择,因此遇到 node_modules 这种几万个小文件的文件夹,都会消耗大量的系统资源。

当然我知道可以去选择下载别的工具来支持跳过 node_modules 进行文件备份,但是当我要为这 node_modules 付出大量妥协的代价的时候,不得不去思考 node_modules 存在的价值。

有一说一,微软自带的文件备份以及 OneDrive 都挺好用的,也许有人说这些文件工具不是用来备份代码的,备份代码得用 git,我现在确实是把代码文件和个人文件割裂开来采取不同的备份方式,但是如果能统一就实在是太棒了。若不是 node_modules 的存在,我可以做到个人文件在本地仓库盘+OneDrive 云端盘无感备份。万恶的 node_modules 。

还有一种解决方案就是写个脚本把所有项目的 node_modules 删掉,每次用项目的时候再 npm install,还是太麻烦。

不知各位有无别的优雅解决方案。

3326 次点击
所在节点    程序员
14 条回复
Clarke
2020-12-03 19:37:31 +08:00
用 goodsync 可以排除任意名字的文件夹
leelz
2020-12-03 19:38:51 +08:00
为啥要删掉,搞一个文件夹放 OneDrive,将要备份的文件复制过去,然后过滤掉 node_modules 不就行了。
stevenkang
2020-12-03 19:47:14 +08:00
mklink /D node_modules D:/node_modules 将目录映射到别的位置?
knives
2020-12-03 21:07:06 +08:00
感觉无解。用过 Syncthing 同步前端代码,走的也是忽略特定目录的路子。
no1xsyzy
2020-12-03 21:39:13 +08:00
按我拍脑袋觉得更可能符合你的需求的顺序:
1. deno
2. 用 OneDrive 的目录作为 git remote ( git remote 可以设置为本地另一路径。不清楚是否可以设置为压缩包,如果可以那是最好的。)
3. 用其他能够进行 ignore 的同步方案,比如 nextcloud

猜测可能可用的:node 和 git 都已知能够跟随符号链接
看看 OneDrive 是否能够跟随符号链接,不能的话可以用符号链接。
符号链接需要管理员权限才能建立。
610915518
2020-12-03 22:00:13 +08:00
写个定时脚本,触发 rsync
610915518
2020-12-03 22:00:52 +08:00
rsync 有个参数可以忽略部分文件的同步
KuroNekoFan
2020-12-03 22:28:40 +08:00
package-lock 和 npm ci 值得你拥有
KuroNekoFan
2020-12-03 22:30:23 +08:00
https://docs.npmjs.com/cli/v6/commands/npm-ci#description
```
It can be significantly faster than a regular npm install by skipping certain user-oriented features.
```
err1y
2020-12-04 08:42:00 +08:00
git remote add
将备份目录添加到 remote 中,然后提交到备份目录就可以了
syficy
2020-12-04 11:21:31 +08:00
@Clarke @stevenkang @no1xsyzy @610915518 感谢工具推荐,syncthing 有在使用,其它的我会有空试试,但我更想从源头上解决 node_modules 这个问题。
@leelz 因为这样每次代码改动就要重新复制,工作量增大了很多,做不到无感备份。
@no1xsyzy @KuroNekoFan @err1y 感谢提供的思路 ,正在尝试中。
leelz
2020-12-04 13:52:59 +08:00
@syficy 把你的那个脚本变成定时脚本就行吖
hcsu
2021-01-13 22:19:06 +08:00
我也在痛苦中...这有个用 rsync 的例子,但貌似只能单向,而且我用 rsync 同步了 15w 个文件,感觉有丢失,不太靠谱

https://arshaw.com/exclude-node-modules-dropbox-google-drive
ron0115
2021-04-09 08:41:00 +08:00
想问楼主找到办法了吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX