我已经使用n
安装节点多年,没有任何问题。现在在我的大苏尔mac上,我从v14.17.6更新到v16。这次更新没有发生任何事件,node -v
显示"16.13.1"。
但是之后,我立即运行的任何npm命令都会出现以下错误:
» npm -v
TypeError: Class extends value undefined is not a constructor or null
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
我尝试了一个早期的v16版本(16.9.1)和n latest
,目前是17.2.0,再次任何npm命令立即错误与完全相同的问题。下降我的节点版本回到14.17.6,npm
是回到正常工作。
有什么办法解决这个问题吗?
7条答案
按热度按时间qoefvg9y1#
如果你像我一样,使用独立的zip文件安装,你需要删除这两个文件夹之前,你做了更新。
e0uiprwp2#
我敢肯定这个答案并不适合所有人,但如果你碰巧使用frontend-maven-plugin,请确保在所有其他方法失败时尝试一下。
zvokhttg3#
我也遇到了同样的问题。安装了一些旧的NPM,当我运行Windows安装程序时失败了。
我做了以下工作:
使用安装程序重新安装所有组件。
brtdzjyr4#
我可能会遇到,卸载后你必须手动删除nodejs安装目录中的node_modules目录,然后再进行安装。
lxkprmvk5#
我通过回滚到Node.js 14.15.1版本(我以前有过),运行
npm install -g npm
,然后更新到Node.js 16,然后再次运行npm install -g npm
来解决这个问题。qlfbtfca6#
对于Windows用户:
我放弃了这个问题,第二天我又回到了我离开的地方。我有一个节点v16安装不工作,并抛出了与最初在这里发布的相同的错误。这是我所做的:
执行节点:
执行的npm:
3htmauhk7#
我意识到,尽管大多数npm命令(
run
、-v
等)都能正常工作,但有些像npm publish
这样的命令甚至在14.17.6上也会抛出新的错误。然后从node.js手动安装最新的node版本,然后执行
npm i -g n
和n latest
。现在我回到了一个良好的状态,我所有的npm命令似乎都能工作,我只有两个node版本,而不是我多年来积累的15个左右。会暂时把这个问题留着不回答,以防别人有不那么激烈的解决方案。