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 是肯定会被读到的,不知道有没有什么好办法解决
1
zzk1989 2021-07-08 13:44:55 +08:00
npx 可以指定 node 版本,不影响全局
$ npx -p [email protected] node -v 如果你有一系列东西,可以单独封装起来,提供一个"bin"命令就可以了 比如我就封装了一个 vite vue2 的打包环境,全局安装一次就可以在其他项目里面使用了 |
2
coffeedeveloper 2021-07-08 13:45:05 +08:00 1
用 nvm https://github.com/nvm-sh/nvm,然后安装的使用 --reinstall-packages-from 参数
|
3
noe132 2021-07-08 13:52:38 +08:00
不使用全局包 / 使用 docker 部署
|
4
lc1450 OP |
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,不知道现在是否好用。 |
6
dfkjgklfdjg 2021-07-08 16:35:25 +08:00
使用 NVM 来管理,然后指定一下全局安装目录就好了,我是直接指定到一个外部目录,然后不管怎么切换版本都全局依赖都不会丢。
|
7
dengshen 2021-07-08 16:41:55 +08:00 via iPhone
Mac ?用 n 来管理版本
|
8
Jirajine 2021-07-08 16:45:19 +08:00 via Android
可以看看 volta,像 rustup 一样管理 node 环境。
|
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 高,内存没多少。
|
10
zhaihaoxyz1 2021-07-09 18:13:31 +08:00
可以使用容器管理
|
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 |