有一个叫 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 源且非直接依赖的,能否指定其使用别的方式下载?
1
leisure 2022-10-08 15:24:45 +08:00
额,终端中设置 proxy ? 我用 zsh ,现在习惯设置代理后体验还不错
|
2
HugoChao 2022-10-08 15:25:38 +08:00
1.手动下载丢目录里
2.手机热点+代理下载,大部分情况下速度很快,测试环境:南京联通 4G |
4
xubingok OP 十分钟过了没法编辑了....
因为打包服务器网络条件比较简陋,不考虑代理哈不考虑代理~~~ |
5
kongkx 2022-10-08 15:27:30 +08:00 via iPhone
打包服务器上也做个代理呗。
|
6
JensenQian 2022-10-08 15:42:33 +08:00
|
7
interim 2022-10-08 15:52:48 +08:00 1
用 clash for windows 的 TUN 模式,用了之后再也没有关心过这些问题了。
|
8
Opportunity 2022-10-08 16:07:55 +08:00
改用 yarn2 如何?现在也有好多把 node_modules 推到 git 上的实践了
https://github.com/yarnpkg/berry/tree/master/.yarn/cache |
9
FreshOldMan 2022-10-08 16:11:23 +08:00
终端 proxy
|
10
vivipure 2022-10-08 16:25:36 +08:00
修改 package-lock.json, 把依赖改为本地,然后用 npm ci 下载依赖
|
11
rain0002009 2022-10-08 16:54:42 +08:00
不然更新一下 jspdf 我刚装的 都没这个依赖了
|
12
DingJZ 2022-10-08 16:55:45 +08:00
我在公司打包的 macmini 上也挂了梯子,体验一下就上去了
|
13
renmu123 2022-10-08 17:01:17 +08:00
2.5.1 确实没这个依赖了或者可以下载一份代码到本地
|
14
sky857412 2022-10-08 18:29:17 +08:00
以前公司直接搞个 node_modules 的压缩包一起提交,服务器上解压,然后再编译
|
15
mritd 2022-10-08 18:37:56 +08:00 via iPhone
最好的办法就是弄好梯子环境,否则过两天你会发现有的包代码里写死的去 github 下载🫠
|
16
hsfzxjy 2022-10-08 19:09:06 +08:00 via Android
proxychains4
|
17
CEBBCAT 2022-10-08 19:24:09 +08:00
买一台香港打包机🤝
|
18
xubingok OP 感觉诸位大佬.昨天发现 package.json 的 resolutions 字段似乎能应对这个场景,但是用下来没有效果,可能是我写法不对,我再研究研究.
|
19
demoshengxw 2022-10-09 09:02:48 +08:00 via iPhone
@interim 这个是正解,git 和 pip 要不还要一个个去代理
|
21
TequilaSea 2022-10-09 09:44:41 +08:00
我记得我遇到过一个类似的,但不确定对这个问题有没有效,我的解决办法是把 git 协议替换成 https 协议
|
22
cy18 2022-10-09 10:04:48 +08:00
全局透明代理,设置好白名单或者黑名单,一劳永逸
|
23
cnit 2022-10-09 11:56:28 +08:00
|
24
xubingok OP @hellohy 啊?真的么?我昨天搞了一个下午,看了 N 篇文章,都有提到 yarn.我一直以为这个 resolutions 是两者都支持的.支持需要高版本的 npm..
|
25
xubingok OP 已经使用 yarn 的 resolutions 解决...
npm 的 resolutions 倒也不是不支持.只是需要先执行 npx npm-force-resolutions 修改 lock 文件,然后在 install.而且在写法上也没有 yarn 这么灵活,很难用. |
26
xubingok OP @TequilaSea 这招用处不大...仅对某些不支持 ssh 的环境有用,根本原因还是墙的问题.
|