NodeJS 所有NPM命令都出现TypeError错误:类extends值undefined不是构造函数或null

f87krz0w  于 2023-02-08  发布在  Node.js
关注(0)|答案(7)|浏览(329)

我已经使用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是回到正常工作。
有什么办法解决这个问题吗?

qoefvg9y

qoefvg9y1#

如果你像我一样,使用独立的zip文件安装,你需要删除这两个文件夹之前,你做了更新。

  • 节点\节点模块\核心包
  • 节点\节点模块\npm
e0uiprwp

e0uiprwp2#

    • 如果在本地安装了节点**:
    • 背景**:我们的机器上有一些管理员访问限制,这阻止我们在没有IT批准的情况下运行msi和其他安装程序。因此,我们使用frontend-maven-plugin在我们的git工作目录中本地安装node和npm。生成的结构是node-app/... node/node_modules/dist/.../package.json
    • 问题**:有时候事情可能会变得混乱(我想我还没有充分理解),特别是当通过maven前端插件在npm的不同版本之间移动时,其结果就是上面提到的错误。
    • 解决方案(Windows重新启动风格)**:最系统的处理方法是:
  • 关闭并停止所有节点执行应用程序
  • 删除"dist/"、"节点/"和"节点模块"
  • 使用maven前端插件重新安装节点和npm。

我敢肯定这个答案并不适合所有人,但如果你碰巧使用frontend-maven-plugin,请确保在所有其他方法失败时尝试一下。

zvokhttg

zvokhttg3#

我也遇到了同样的问题。安装了一些旧的NPM,当我运行Windows安装程序时失败了。
我做了以下工作:

  • 使用安装程序(https://nodejs.org/en/download/)删除节点npm
  • 从c:/Users/YOURUSER/AppData/Roaming/npm-cache和nvm文件夹(如果可用)中删除
  • 删除c:/Program Files/节点(如果可用)
  • 删除NPM和NODE的所有环境变量设置。2在用户和系统范围内都有多个条目。

使用安装程序重新安装所有组件。

brtdzjyr

brtdzjyr4#

我可能会遇到,卸载后你必须手动删除nodejs安装目录中的node_modules目录,然后再进行安装。

lxkprmvk

lxkprmvk5#

我通过回滚到Node.js 14.15.1版本(我以前有过),运行npm install -g npm,然后更新到Node.js 16,然后再次运行npm install -g npm来解决这个问题。

qlfbtfca

qlfbtfca6#

对于Windows用户:
我放弃了这个问题,第二天我又回到了我离开的地方。我有一个节点v16安装不工作,并抛出了与最初在这里发布的相同的错误。这是我所做的:

  • 我(重新)安装了依赖项
  • 再次卸载节点(第三次)
  • 重新安装的节点(16.3.2)
  • 关闭所有电动 shell 窗口
  • 打开新的电源 shell 窗口

执行节点:

PS C:\Users\*****> node
Welcome to Node.js v16.13.2.
Type ".help" for more information.
>
(To exit, press Ctrl+C again or Ctrl+D or type .exit)
>

执行的npm:

PS C:\Users\*****> npm
npm <command>

Usage:

npm install ...

Configuration fields: npm help 7 config

npm@8.1.2 F:\Program Files\nodejs\node_modules\npm
3htmauhk

3htmauhk7#

我意识到,尽管大多数npm命令(run-v等)都能正常工作,但有些像npm publish这样的命令甚至在14.17.6上也会抛出新的错误。

rm -rf /usr/local/n

然后从node.js手动安装最新的node版本,然后执行npm i -g nn latest。现在我回到了一个良好的状态,我所有的npm命令似乎都能工作,我只有两个node版本,而不是我多年来积累的15个左右。
会暂时把这个问题留着不回答,以防别人有不那么激烈的解决方案。

相关问题