NPM无法读取未定义的属性"0"

Dmi*_*vin 31 npm

在更新了Node(最高v8.6.0)和npm(最高v5.5.1)后,我无法执行命令npm install.在npm安装后我发出错误消息:

npm ERR! Cannot read property '0' of undefined
Run Code Online (Sandbox Code Playgroud)

有什么问题或我需要降级节点/ npm?

Ida*_*gan 43

我有同样的问题.

我删除了node_modulespackage-lock.json,然后执行了:

npm install 
Run Code Online (Sandbox Code Playgroud)

它奏效了.

@OwlyMoly编辑 由于新的更新和package-lock.json中对旧依赖项的限制导致了这种冲突.通过这样做npm install不会解决这个问题.而是通过抛弃npm_modules和package-lock.json并执行npm install将加载一个新的node_modules并且应该是package.json所需要的.您必须提交新的package-lock.json以及项目的最新更改.

  • 在运行这些步骤之前,删除高速缓存npm cache clear --force也很有帮助。 (4认同)

Leg*_*nds 5

只需下载并安装最新的Yarn,它也是一个节点包管理器,由 facebook 开发,但具有更好的依赖管理。还要更新您的节点 cli(可选)。

然后,使用yarn以下命令安装您的依赖项:

yarn install
Run Code Online (Sandbox Code Playgroud)

或者

yarn // short version of yarn install
Run Code Online (Sandbox Code Playgroud)

没有错误!

您可以npm在安装所有依赖项后继续使用yarn或继续yarn....这是您的选择。


Sak*_*oki 5

在下面进行2步(窗口):

rm -rf ./node_modules 删除节点文件夹

rm package-lock.json删除package-lock.json文件

然后npm install重新安装节点模块


Dmi*_*vin 3

我做了一些测试:

nodejs@8.6.0 npm@5.5.1 - 我遇到麻烦并且测试失败

nvm use 8.5.0
Run Code Online (Sandbox Code Playgroud)

nodejs@8.5.0 npm@5.5.1 - 我遇到麻烦并且测试失败

nvm use 8.4.0
Run Code Online (Sandbox Code Playgroud)

nodejs@8.4.0 npm@5.5.1 - 我遇到麻烦并且测试失败

npm install npm@^5 -g
Run Code Online (Sandbox Code Playgroud)

nodejs@8.4.0 npm@5.4.2 - 我遇到麻烦并且测试失败

nvm use 8.6.0
npm install npm@^4 -g
Run Code Online (Sandbox Code Playgroud)

nodejs@8.6.0 npm@4.6.1 - 没问题,这解决了它。