Nodejs 升级怎么保留全局安装的包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
atx
V2EX    Node.js

Nodejs 升级怎么保留全局安装的包

  •  
  •   atx 2021-07-08 13:11:32 +08:00 3417 次点击
    这是一个创建于 1556 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt, 今天用 fs/promises 报错,发现是 nodejs 版本低了。于是下载最新 lts 版本 zip,打算直接解压覆盖,仔细一看发现 npm 全局安装的包生成的命令都在 NODEJS_HOME/node_modules/npm 目录里面, 就保留了 node_modules 只覆盖了 node.exe npx 等文件。

    nodejs 是升级成功了 ,但 npm 就不干了 npm WARN npm npm does not support Node.js v14.17.3 最后清空目录,解压进去好了,全局命令以后缺了再装。

    想问问各位大佬,你们 nodejs 是怎么升级的,有没有办法保留这些全局包(命令)

    还有 nodejs 在服务器上部署时怎么限制 npm 配置路径,服务器是多人共享 root 的,怕影响到其他人,所以全局包(例如 pm2)要装到项目目录里面,看文档.npmrc 的搜索路径,/root/.npmrc 是肯定会被读到的,不知道有没有什么好办法解决

    11 条回复    2021-08-04 22:34:13 +08:00
    zzk1989
        1
    zzk1989  
       2021-07-08 13:44:55 +08:00
    npx 可以指定 node 版本,不影响全局
    $ npx -p [email protected] node -v

    如果你有一系列东西,可以单独封装起来,提供一个"bin"命令就可以了
    比如我就封装了一个 vite vue2 的打包环境,全局安装一次就可以在其他项目里面使用了
    coffeedeveloper
        2
    coffeedeveloper  
       2021-07-08 13:45:05 +08:00   1
    用 nvm https://github.com/nvm-sh/nvm,然后安装的使用 --reinstall-packages-from 参数
    noe132
        3
    noe132  
       2021-07-08 13:52:38 +08:00
    不使用全局包 / 使用 docker 部署
    atx
        4
    atx  
    OP
       2021-07-08 14:10:20 +08:00
    @zzk1989 @coffeedeveloper 好的,谢谢 有空试试

    @noe132
    libook
        5
    libook  
       2021-07-08 16:24:09 +08:00
    npm 自己其实也是被当做一个包放在全局的 node_modules 下的,你可以把新版的 npm 覆盖过去。

    另外一直在 MacOS 和 Linux 下用 nvm:
    nvm install 新版本号 --reinstall-packages-from=旧版本号
    可以做到连着全局包一起迁移过去。
    几年前尝试过在 Windows 上用 nvm 无果,nvm 本身实际是个 Shell 脚本,原版不能在 Windows 上用,有个 nvm-windows,不知道现在是否好用。
    94
        6
    94  
       2021-07-08 16:35:25 +08:00
    使用 NVM 来管理,然后指定一下全局安装目录就好了,我是直接指定到一个外部目录,然后不管怎么切换版本都全局依赖都不会丢。
    dengshen
        7
    dengshen  
       2021-07-08 16:41:55 +08:00 via iPhone
    Mac ?用 n 来管理版本
    Jirajine
        8
    Jirajine  
       2021-07-08 16:45:19 +08:00 via Android
    可以看看 volta,像 rustup 一样管理 node 环境。
    threeEggs123
        9
    threeEggs123  
       2021-07-08 18:17:01 +08:00 via Android
    借个楼问一下,node 12.x 版本,create-react-app,npm run start 后,cpu 直接蹦到一百,依赖就是那些 ts,antd,谷歌都没有找到解决方案,怎么定位问题呢。cpu 高,内存没多少。
    zhaihaoxyz1
        10
    zhaihaoxyz1  
       2021-07-09 18:13:31 +08:00
    可以使用容器管理
    magicdawn
        11
    magicdawn  
       2021-08-04 22:34:13 +08:00
    几年前看到了知乎安利 nvs, 就是看中了每次升级不用重新安装所有 global modules

    https://zhuanlan.zhihu.com/p/63403762

    npm config set prefix ~/.npm-global
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 02:03 PVG 10:03 LAX 19:03 JFK 22:03
    Do have faith in what you're doing.
    ubao 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