npm install 遇上 git 源如何提速?

2022-10-08 15:22:36 +08:00
 xubingok

有一个叫 jspdf 的库,其 package.json 里面是这样描述的:

  "dependencies": {
    "canvg": "1.5.3",
    "file-saver": "github:eligrey/FileSaver.js#1.3.8",
    "html2canvas": "1.0.0-alpha.12",
    "omggif": "1.0.7",
    "promise-polyfill": "8.1.0",
    "stackblur-canvas": "2.2.0"
  }

问题就出在这个 file-saver.由于是从 github 拉取的,导致每次打包时 install 变得极慢,且不小的概率失败.

网上常用的 npm --registry https://registry.npmmirror.com无效的,并不能改变这种指定 git 源的下载.

有想过使用 file 协议 url 来替换.

"dependencies": {
    "file-saver": "file:./file-saver"
}

但是这个库并不是项目 package.json 的直接依赖,而是 jspdf 导致的间接依赖,似乎也无法奏效.

大佬们有没有什么好方法?这种依赖为 github 源且非直接依赖的,能否指定其使用别的方式下载?

2898 次点击
所在节点    程序员
26 条回复
leisure
2022-10-08 15:24:45 +08:00
额,终端中设置 proxy ? 我用 zsh ,现在习惯设置代理后体验还不错
HugoChao
2022-10-08 15:25:38 +08:00
1.手动下载丢目录里
2.手机热点+代理下载,大部分情况下速度很快,测试环境:南京联通 4G
xubingok
2022-10-08 15:25:53 +08:00
@leisure 自己电脑倒是好解决.但是打包服务器上用 proxy 不太合适~~~
xubingok
2022-10-08 15:27:16 +08:00
十分钟过了没法编辑了....

因为打包服务器网络条件比较简陋,不考虑代理哈不考虑代理~~~
kongkx
2022-10-08 15:27:30 +08:00
打包服务器上也做个代理呗。
JensenQian
2022-10-08 15:42:33 +08:00
interim
2022-10-08 15:52:48 +08:00
用 clash for windows 的 TUN 模式,用了之后再也没有关心过这些问题了。
Opportunity
2022-10-08 16:07:55 +08:00
改用 yarn2 如何?现在也有好多把 node_modules 推到 git 上的实践了

https://github.com/yarnpkg/berry/tree/master/.yarn/cache
FreshOldMan
2022-10-08 16:11:23 +08:00
终端 proxy
vivipure
2022-10-08 16:25:36 +08:00
修改 package-lock.json, 把依赖改为本地,然后用 npm ci 下载依赖
rain0002009
2022-10-08 16:54:42 +08:00
不然更新一下 jspdf 我刚装的 都没这个依赖了
DingJZ
2022-10-08 16:55:45 +08:00
我在公司打包的 macmini 上也挂了梯子,体验一下就上去了
renmu123
2022-10-08 17:01:17 +08:00
2.5.1 确实没这个依赖了或者可以下载一份代码到本地
sky857412
2022-10-08 18:29:17 +08:00
以前公司直接搞个 node_modules 的压缩包一起提交,服务器上解压,然后再编译
mritd
2022-10-08 18:37:56 +08:00
最好的办法就是弄好梯子环境,否则过两天你会发现有的包代码里写死的去 github 下载🫠
hsfzxjy
2022-10-08 19:09:06 +08:00
proxychains4
CEBBCAT
2022-10-08 19:24:09 +08:00
买一台香港打包机🤝
xubingok
2022-10-09 08:04:39 +08:00
感觉诸位大佬.昨天发现 package.json 的 resolutions 字段似乎能应对这个场景,但是用下来没有效果,可能是我写法不对,我再研究研究.
demoshengxw
2022-10-09 09:02:48 +08:00
@interim 这个是正解,git 和 pip 要不还要一个个去代理
hellohy
2022-10-09 09:13:11 +08:00
@xubingok npm 不支持 resolutions ,用 yarn

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

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

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

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

© 2021 V2EX