更新节点(最高v8.6.0)和npm(最高v5.5.1)后,我无法执行命令npm install
。
在npm安装后我发出错误消息:
npm ERR! Cannot read property '0' of undefined
什么问题或我需要降级节点/ npm?
答案 0 :(得分:36)
我遇到了同样的问题。
我删除了 node_modules 和 package-lock.json ,然后执行了操作:
npm install
它有效。
按@OwlyMoly修改
由于新的更新和package-lock.json中对旧依赖项的限制导致了这种冲突。通过npm install
无法解决此问题。而是通过抛弃npm_modules和package-lock.json并执行npm install
将加载一个新的node_modules,而这应该是package.json所需要的。您必须提交新的package-lock.json以及项目的最新更改。
答案 1 :(得分:3)
执行2个步骤(窗口):
y
删除节点文件夹
rm -rf ./node_modules
删除rm package-lock.json
文件
然后package-lock.json
重新安装节点模块
答案 2 :(得分:2)
nodejs@8.6.0 npm@5.5.1 - 我遇到麻烦,测试失败
nvm use 8.4.0
nodejs@8.5.0 npm@5.5.1 - 我遇到麻烦,测试失败
npm install npm@^5 -g
nodejs@8.4.0 npm@5.5.1 - 我遇到麻烦,测试失败
nvm use 8.6.0
npm install npm@^4 -g
nodejs@8.4.0 npm@5.4.2 - 我遇到麻烦,测试失败
<?php
require_once "DbOperations.php";
$response=array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if (isset($_POST['artifact_id'])) {
$editData;
if($_POST['artifact_id']!=='null'){
$editData['artifact_id']=$_POST['artifact_id'];
if($_POST['worker_id']!=='null'){
$editData['worker_id']=$_POST['worker_id'];
}else{
$editData['worker_id']=null;
}
if($_POST['image']!=='null'){
$editData['image']=$_POST['image'];
}else{
$editData['image']=null;
}
if($_POST['period']!=='null'){
$editData['period']=$_POST['period'];
}else{
$editData['period']=null;
}
if($_POST['location_id']!=='null'){
$editData['location_id']=$_POST['location_id'];
}else{
$editData['location_id']=null;
}
if($_POST['coordinate_x']!=='null'){
$editData['coordinate_x']=$_POST['coordinate_x'];
}else{
$editData['coordinate_x']=null;
}
if($_POST['coordinate_y']!=='null'){
$editData['coordinate_y']=$_POST['coordinate_y'];
}else{
$editData['coordinate_y']=null;
}
if($_POST['type']!=='null'){
$editData['type']=$_POST['type'];
}else{
$editData['type']=null;
}
if($_POST['comment']!=='null'){
$editData['comment']=$_POST['comment'];
}else{
$editData['comment']=null;
}
$db = new DbOperations();
$db->editArtifact($editData);
}
}else{
$response['error']=true;
json_encode($response);
}
}
?>
nodejs@8.6.0 npm@4.6.1 - 没问题,这就解决了。
答案 3 :(得分:2)
删除package.json.lock
文件和node_modules
文件夹,在我的情况下不幸地没有帮助。
只需下载并安装最新的Yarn,它也是由facebook开发的节点包管理器 ,但具有更好的依赖关系管理 。同时更新node cli(可选)。
然后,使用yarn
安装您的依赖项:
yarn install
或
yarn // short version of yarn install
没有错误!
您可以在使用npm
安装所有依赖项后继续使用yarn
,或继续使用yarn
....这是您的选择。
答案 4 :(得分:1)
答案 5 :(得分:1)
npm 5.3.0在 Windows 10 中被破坏 你应该降级npm,这是一个临时的解决方案,但工作正常。
npm install -g npm@5.2.0
答案 6 :(得分:1)
对我来说(npm@6.9.0)通过删除node_modules
并执行npm install
来解决此问题,但没有删除package.json.lock
文件。
答案 7 :(得分:0)
尝试使用nvm(节点版本管理器)。它可以帮助您为任何项目安装任何节点版本而不会出现任何错误。
答案 8 :(得分:0)
使用npm版本5.5.1安装 babel-preset-stage-0
时发现同样的问题<强>解决方案:强> 我将npm降级到版本5.2.0并尝试重新安装然后它可以解决问题。
npm i -g npm@5.2.0
npm i -D babel-preset-stage-0
答案 9 :(得分:0)
我使用nvs
(节点版本切换器-https://github.com/jasongin/nvs)node@10.15.3
和npm@6.9.0
遇到了这个问题。原因是我与npm link
链接的本地软件包。解决方案是删除该文件夹。
答案 10 :(得分:0)
就我而言,重新安装node_modules
不能解决此问题。
问题是源代码中缺少一个*.ts
文件。
不知道为什么它没有显示编译错误,但是将此缺少的文件添加到存储库中解决了此问题。
答案 11 :(得分:0)
将 npm 升级到版本 7.5.4
为我完成了这项工作。
npm install -g npm@latest
答案 12 :(得分:0)
只需删除 node_modules
和 package-lock.json
并运行:npm install
或
只需运行:npm install -g npm@latest
即可将其升级到最新版本