NPM:ENOENT:没有这样的文件或目录,重命名

Posted

技术标签:

【中文标题】NPM:ENOENT:没有这样的文件或目录,重命名【英文标题】:NPM: ENOENT: no such file or directory, rename 【发布时间】:2018-09-14 00:40:35 【问题描述】:

我在项目中使用 gulp,然后我决定删除所有开发依赖项以切换到 webpack,但每次尝试使用 npm 安装时都会收到此错误:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not permitted, rename 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\.staging\fsevents-e80c4ef4\node_modules\are-we-there-yet' -> 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\.staging\are-we-there-yet-5db4c798'

npm ERR! path C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\acorn
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\acorn' -> 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\.acorn.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!     C:\Users\MiguelFrias\AppData\Roaming\npm-cache\_logs\2018-04-04T11_54_23_587Z-debug.log

知道会发生什么。

【问题讨论】:

尝试在 Dropbox 中的文件夹中安装 Express 时遇到了与此非常相似的情况。因此,我将其安装到 Dropbox 外部的临时文件夹中,并将其复制进去,这解决了我的问题。很烦人。 @kebman : 在尝试了一些建议之后,你拯救了我的一天:dropbox,,,, 【参考方案1】:

第二行可能会提示正在发生的事情:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not permitted, rename 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\.staging\fsevents-e80c4ef4\node_modules\are-we-there-yet' -> 'C:\Users\MiguelFrias\Desktop\Therabytes\node_modules\.staging\are-we-there-yet-5db4c798'

看起来 npm 对您尝试使用的文件夹没有足够的权限。

你可以试试:

再次删除 npm_modules。 以管理员权限打开您正在使用的任何编辑器/终端到npm install

【讨论】:

我正在使用指挥官(Cmder),我已经尝试删除 node_modules 并以管理员身份运行终端,但仍然发生同样的情况【参考方案2】:

我找到了问题的解决方案,显然是最后一个版本的 npm 出现了一些问题,我使用的是npm version 5.6.0,然后我降级到了npm version 5.3.0。毕竟这确实有效,在安装了几个包后我仍然得到同样的错误。

好的,为最后一个 version 5.8.0 更改 npm 版本,现在一切正常,之前是 atom 的某种问题,拒绝了构建过程安装包依赖项的权限。

【讨论】:

【参考方案3】:

只需删除 package-lock.json 文件,然后安装包,这就是您所需要的并且应该可以工作

rm package-lock.json && npm i

【讨论】:

非常感谢。救了我一天!会是这个问题的原因吗? 安装包的时候应该停止 yarn 或 npm 脚本,然后再运行 您能解释一下为什么会发生这种情况以及为什么需要删除 lock.json 吗? 这个文件 package-lock.json 在哪里? 这对我不起作用,因为安装全局软件包时发生错误。运行 npm cache verify 成功了。【参考方案4】:

当我收到此错误时,我在任务管理器中查找所有正在运行的节点实例(我在 Windows 上使用进程资源管理器)并关闭/终止所有正在运行的节点实例。对我来说,它经常是 webstorm 或 vs code。关闭这些程序并确保没有运行节点进程后,npm install 再次工作。

【讨论】:

是的,其中一个节点应用程序正在从另一个终端运行。我就是这种情况 它为我解决了。如果我们在 Windows 任务管理器中有许多实例节点进程,则 NPM 不适用于 WSL。 在我的例子中,这些节点实例是由 VSCode 调用的。 是的,关闭 VSCode 有帮助【参考方案5】:

为了不每次都删除package-lock.json或node_modules,只需添加内容为“package-lock=false”的文件“.npmrc”,如果文件“.npmrc”已经存在,则添加此字符串。

【讨论】:

【参考方案6】:

删除 package-lock.json 或 node_modules & 运行后:

npm install -g npm

它又对我有用了。

【讨论】:

【参考方案7】:

我刚刚尝试运行

npm install 

成功了

【讨论】:

【参考方案8】:

对我来说,package-lock.json 没有创建,并且脚本本身就失败了。

这解决了我的问题:

- deleted my node_modules.
- npm cache clean 
- opened cmd as administrator at the repository folder
- logged-in to the https://registry.npmjs.org/ using username and passoward as few of my components needed authentication to install.
- npm i

【讨论】:

【参考方案9】:

cache verify 命令为我解决了这个问题

npm cache verify

【讨论】:

【参考方案10】:

您可以尝试使用命令 rm package-lock.json 删除 package-lock.json,然后转到 Node.JS 网站,通过 LTS 进行“安装”,然后在更新节点后运行 npm install在您的终端中,这对我有用。

【讨论】:

【参考方案11】:

实际上,您正在安装的当前软件包有一些依赖项,我的 npm 找不到这些依赖项。因此,在安装此软件包之前,只需执行以下命令。 (它将安装您在 package.json 文件中提到的所有列出的依赖项,这些依赖项是运行您的应用程序所必需的)

npm install 

它有效...!

【讨论】:

【参考方案12】:

我正在使用 -节点 v15.5.0

-npm v6.14.10

试试这个:

    关闭“展会开始” 删除“package-lock.json” 立即尝试安装软件包

示例:npm i @react-navigation/native

这将解决问题。

【讨论】:

【参考方案13】:

这对我有用,

rm -rf ./**/node_modules

虽然我需要lerna bootstrap

【讨论】:

【参考方案14】:

只需将节点更新到最新版本。 它解决了我的问题。

【讨论】:

【参考方案15】:

如果您遇到此错误,请按照以下步骤进行修复:

删除节点模块文件夹 运行命令 npm cache clean --force 运行命令 npm install 使用 npm install your-package-name 再次安装包

【讨论】:

【参考方案16】:

我在 Ubuntu wsl 中运行命令,但它不起作用,所以我尝试在 cmd 提示符下运行,它起作用了

【讨论】:

【参考方案17】:

我删除了node_modulespackage_lock.json。然后,npm install 就可以了

【讨论】:

【参考方案18】:

请检查任何 package.json 是否在任何地方打开,然后先关闭它然后重试。

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。【参考方案19】:

对我来说,我刚刚删除了 package-lock.jsonnode_modules 文件夹。现在一切正常?

【讨论】:

【参考方案20】:

另一件事我在已经存在并经历了多个贡献者的项目中看到了很多:

仔细检查您的团队中是否有人同时完​​成了npm installyarn

明显的迹象是你会在同一个 repo 中看到 package-lock.json(由 npm 生成)和 yarn-lock.json(由 yarn 生成)。这可能会导致 node_modules 文件夹中的冲突产生副作用。

您可以尝试在本地转储该文件夹,为您的项目建立一个选择的包管理器并指导整个团队最佳实践。

【讨论】:

【参考方案21】:

对我来说,我必须 sudo npm install 命令。不知道为什么……我也不想知道。

sudo npm install --save-dev my_package

【讨论】:

【参考方案22】:

这些步骤对我有用:

    1. run "npm cache verify" or 
    2. remove node_modules and package-lock.json
and rerun command)

【讨论】:

【参考方案23】:

有时这可能是您尝试安装的软件包的问题。如果该包是本地包并且有一个 node_modules 文件夹。试试:

cd /path/to/package
rm -rf package-lock.json npm-shrinkwrap
npm install

【讨论】:

【参考方案24】:

我在编写 react native app with expo 时发生过, 当我运行应用程序并尝试安装表单 npm 时发生该错误。 所以只需停止运行应用程序并重新安装软件包 对我来说效果很好

【讨论】:

以上是关于NPM:ENOENT:没有这样的文件或目录,重命名的主要内容,如果未能解决你的问题,请参考以下文章

ENOENT:运行 npm install 命令时没有这样的文件或目录

NPM 安装在 docker 容器中失败 - npm WARN tar ENOENT:没有这样的文件或目录

npm 错误! Windows_NT 6.1.7601:ENOENT:没有这样的文件或目录

npm ENOENT 没有这样的文件或目录,打开 path/package.json

docker-compose 无法以 npm ERR 启动! enoent ENOENT:没有这样的文件或目录,打开'/usr/src/app/package.json'

npm install 说找不到文件