npm install 遇上 git 源如何提速? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xubingok
V2EX    程序员

npm install 遇上 git 源如何提速?

  •  
  •   xubingok 2022-10-08 15:22:36 +08:00 3250 次点击
    这是一个创建于 1104 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个叫 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 源且非直接依赖的,能否指定其使用别的方式下载?

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

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

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

    看下这个 把 github.com 重定向到 ghproxy.com/github.com
    xubingok
        24
    xubingok  
    OP
       2022-10-09 14:23:31 +08:00
    @hellohy 啊?真的么?我昨天搞了一个下午,看了 N 篇文章,都有提到 yarn.我一直以为这个 resolutions 是两者都支持的.支持需要高版本的 npm..
    xubingok
        25
    xubingok  
    OP
       2022-10-09 16:43:16 +08:00
    已经使用 yarn 的 resolutions 解决...
    npm 的 resolutions 倒也不是不支持.只是需要先执行 npx npm-force-resolutions 修改 lock 文件,然后在 install.而且在写法上也没有 yarn 这么灵活,很难用.
    xubingok
        26
    xubingok  
    OP
       2022-10-09 19:29:06 +08:00
    @TequilaSea 这招用处不大...仅对某些不支持 ssh 的环境有用,根本原因还是墙的问题.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6359 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 02:31 PVG 10:31 LAX 19:31 JFK 22:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86