使用asdf搭配Node.js v11时npm触发段错误的解决求助
解决asdf搭配Node.js v11.1.0运行npm v6.4.1的问题
先修复全局npm版本锁定的问题
- 卸载全局强制安装的旧版本npm:
npm uninstall -g npm@6.4.1 - 重置Node.js v18.17.1的npm版本:
- 切换到对应Node版本:
asdf local nodejs 18.17.1或asdf global nodejs 18.17.1 - 重新安装适配的npm版本:
npm install -g npm@9.6.7
- 切换到对应Node版本:
解决Node.js v11.x下npm段错误的问题
方案1:安装时指定npm版本
安装Node.js v11.1.0时直接绑定npm v6.4.1:
ASDF_NODEJS_NPM_VERSION=6.4.1 asdf install nodejs 11.1.0
切换到该版本后执行npm -v确认版本,再运行项目测试是否报错。
方案2:手动替换npm版本
如果方案1无效,手动替换:
- 切换到Node.js v11.1.0:
asdf local nodejs 11.1.0 - 卸载当前有问题的npm:
npm uninstall -g npm - 安装指定版本:
curl -L https://registry.npmjs.org/npm/-/npm-6.4.1.tgz | tar xz && cd package && node bin/npm-cli.js install -g npm@6.4.1 - 清理临时文件:
cd .. && rm -rf package - 验证版本:
npm -v
方案3:修复系统依赖兼容性
Node.js v11.x较老,和Ubuntu 22.04的glibc/libssl版本存在兼容问题:
- 安装旧版libssl:
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.20_amd64.deb sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.20_amd64.deb - 重新安装Node.js v11.1.0:
asdf install nodejs 11.1.0
后续避免版本冲突的建议
- 不要全局安装特定版本npm,用项目根目录的
.tool-versions文件管理:
在旧项目根目录创建.tool-versions,写入:
进入项目时asdf会自动切换版本,避免全局干扰。nodejs 11.1.0
内容的提问来源于stack exchange,提问作者RSeidelsohn
相关产品推荐
相关产品推荐

