`npm install`给ENOENT errno -2缺少dezalgo模块

时间:2018-01-09 03:50:53

标签: npm-install

我正在尝试运行npm install以获得我所拥有的一个由ember驱动的小网站,但它会引发以下错误:

npm ERR! path /Projects/Etc/Admin/cuscus/node_modules/npm/node_modules/dezalgo
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/Projects/Etc/Admin/cuscus/node_modules/npm/node_modules/dezalgo' -> '/Projects/Etc/Admin/cuscus/node_modules/npm/node_modules/.dezalgo.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/mick/.npm/_logs/2018-01-09T01_18_51_322Z-debug.log

如果我完全删除了node_modules目录,那么再次运行npm install它似乎可行,但再次运行它会失败。

3 个答案:

答案 0 :(得分:4)

你可以尝试的是:

  1. 请确保在管理员模式下使用cmd promt。

  2. 如果您使用VS Code,请终止所有节点procceses。关闭它然后再试一次。

  3. 删除package-lock.json和node-modules文件夹,然后重试。
  4. 更改节点版本。例如,尝试旧的v6.11.2
  5. 尝试执行npm cache clean --force
  6. 尝试在初始npm i -g {package}之后删除〜/ AppData / Roaming / npm / node_modules中的{package} .DELETE并重试npm i -g {package}
  7. 其中一个可以提供帮助。但不确定。此问题的问题状态暂时打开。 https://github.com/npm/npm/issues/17444

答案 1 :(得分:1)

我在设置新机器时遇到了这个问题。缓存清理/卸载/重新安装步骤都不适用于我。

但是,我能够通过将npm更新到最新版本来解决它。我安装了5.6.0,但使用npm-windows-upgrade安装最新版本(5.7.1)清除了依赖性问题。

有关在Windows上升级npm的更多信息,请参阅此答案: https://stackoverflow.com/a/31520672/91189

答案 2 :(得分:1)

最有可能发生这种情况的原因是,您更新了节点版本,并且由于您可能已经在该特定更新之前将此存储库安装在计算机上,因此package-lock.json文件的唯一目的是跟踪您的当前和过去状态。 node_modules文件并维护非常更新的dependency tree,以便在使用代码的实体之间安装完全相同的依赖项将保持一致性;

使用您的代码的实体包括

  1. Teammates

  2. 部署(AWS ECS),

  3. 和持续集成工具(如Travis CI)正在运行您的代码,

尝试删除package-lock.json文件。运行npm install命令,就可以了。

您应该尝试做的最后一件事是,如果不确定自己在做什么,则删除丢失的软件包,通常最好避免这种情况。

祝你好运。