[英]npm ERR! Error: EPERM: operation not permitted, rename
当我执行npm install
时出现此错误
npm ERR:错误:EPERM,不允许操作:重命名 C:\projects******\node_modules\react-async-script' -> 'C.\projects******\node_modules.react-异步脚本.DELETE'
npm cache clean
node_modules
open 相关的任何内容在我的情况下,这有帮助:
在继续执行这些命令之前,请关闭所有 VS Code 实例。
清理缓存
npm cache clean --force
以管理员身份全局安装最新版本的 npm:
npm install -g npm@latest --force
清理缓存
npm cache clean --force
再次尝试安装您的组件。
我希望这能解决您的问题。 如果没有,您可以暂时禁用防病毒程序并重试。
尝试使用强制选项 npm install 获取远程资源时,即使磁盘上存在本地副本,我也能正常工作。 尝试跑步
npm install --force
更新对于我的一些同事,此解决方案不起作用。 但是我们尝试使用yarn而不是npm。 它始终有效(也更快)而没有任何问题
yarn install [package-name]
不是package.json
,但无论出于何种原因,我的node_modules/
已成为只读。 重置解决了这个问题。
对我来说,我只是关闭了代码编辑器(VS Code),然后运行相同的命令。 这为我解决了这个问题。
如果您想避免使用--force
选项(这总是更好的方法) ,我建议确保您已停止运行项目,因为这通常是我在几乎 90% 的情况下锁定文件的主要原因见过
1- 在 Angular 中,停止ng s
和在 React 中停止npm start
通常可以解决这个问题,因为如果开发服务器正在运行项目,因为它锁定了一些文件,然后 npm 无法更新它们,因此通常会发生此错误,从而引发此错误
2-如果上述方法不起作用,请尝试关闭其中打开了工作区的代码编辑器(可能是锁定了某些文件或其他内容)
所以尝试关闭代码编辑器并运行:
npm install
3-如果仍然不起作用,那么也许您可以尝试--force
选项
npm install --force
我遇到了同样的错误,根据https://github.com/Medium/phantomjs/issues/19,这可能是由您的防病毒软件引起的。 我在安装期间禁用了我的,并以管理员身份在 cmd 上执行了“npm install”并且它工作正常。 希望这会有所帮助。
正如 Martin Kearn 在评论中指出的那样,关闭 Visual Studio为我解决了这些 npm 权限问题。 显然 VS 有时会锁定node_modules
文件。
我得到了同样的东西。 我在任何地方都没有找到这个,但我发现我们的虚拟机倾向于将文件更改为只读状态。 所以我打开package.json
的文件属性并在“常规”选项卡中取消选择Read-only
。
步骤
package.json
文件。这是由 Antivirus 引起的典型错误。 对于像我这样无法禁用 A/V(公司政策)的情况,有一种解决方法。
你必须改变polyfills.js
内Npm
包:
[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js
查找此语句:
if (process.platform === "win32") {
在这个语句中,有一个超时会在出现错误时重试。 问题是在某些情况下,超时后文件仍被 A/V 锁定。 解决方案是删除超时并让此语句循环。 与先前代码的更改注释:
if (platform === "win32") {
fs.rename = (function (fs$rename) { return function (from, to, cb) {
var start = Date.now()
var backoff = 0;
fs$rename(from, to, function CB (er) {
if (er
&& (er.code === "EACCES" || er.code === "EPERM")
/*&& Date.now() - start < 60000*/) {
console.log("Retrying rename file: " + from + " <> " + to)
fs$rename(from, to, CB);
/*setTimeout(function() {
fs.stat(to, function (stater, st) {
if (stater && stater.code === "ENOENT")
fs$rename(from, to, CB);
else
cb(er)
})
}, backoff)*/
if (backoff < 100)
backoff += 10;
return;
}
if (cb) cb(er)
})
}})(fs.rename)
}
我仅在 Windows 中多次遇到此问题,我通常按顺序尝试这些问题。
npm install --force
node_modules/
通常在这些步骤之一之后尝试npm install
将解决它。
就我而言,某些东西被锁定,快速重启解决了它。
尝试将文件重命名为另一个已经存在的文件名可能会导致 Windows 上的EPERM
错误。
关闭 PHPStorm 为我解决了这个问题。
只需关闭 VS Code 即可为我解决问题
将 npm 更新到 5.4.2 后,我遇到了同样的问题,npm 开始对大多数 npm 命令给出相同的错误。 一些解决方案建议使用--no-optional
运行它,但它并不总是有效。
其他人建议降级,但我不想降级。
我怀疑是安装有问题,不知道是什么问题。
所以我重新更新了我的 npm:
npm i -g npm
从那以后工作得很好。
我做了以下事情:
npm install -g npm@6.5.0-next.0
c:/users/[username]/AppData/Roaming/npm-cache
npm cache clean --force
npm install
。我用元数据标志重新安装了我的窗口磁盘,并立即提供了帮助: https : //devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
之后不再需要对 npm 命令使用 sudo,因为元数据会检查 Windows 和 linux 文件/目录权限。
npm 在scandir
对我来说失败了:
npm install -g webpack
...这可能是由 npm 尝试“修改”可能被其他进程锁定的文件引起的,如此处和其他几个 github 线程中提到。 在强制清理缓存、验证缓存、以管理员身份运行、禁用 AV 等之后,实际对我有用的解决方案是关闭任何可能锁定文件的东西(即重新启动我的计算机)。
我希望这可以帮助正在挣扎的人。
我有同样的问题。 错误的原因是文件路径中的字符不受支持。 用英语替换了西里尔字母 - 它有帮助。
对于某些人来说, AppRoot\\npm 文件夹可能是一个问题。 有时 AppRoot 文件夹被标记为网络共享,因此防病毒软件会阻止这些内容。 请按照以下链接获取完整的解决方案。
https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/
我希望这会有所帮助。
以管理员身份打开命令提示符并导航到项目位置,然后运行 npm install。 它对我有用。
在我的情况下,在Windows
上运行npm: v6.9.0
&& node: v10.16.1
,我必须以管理员身份运行我的 CLI (git bash)。 然后安装软件包没有任何警告/错误
如果您在 PHP Storm 上遇到问题:
我在 VSCode 中使用终端,我意识到我使用的是bash
终端而不是node
终端。
以管理员身份运行 CLI 总是为我解决问题
我正在使用 macOS catalina ,
npm init
我有错误
operation not permitted, uv_cwd
在 2021 年,这就是您解决此问题的方法。
很简单:
第 1 步:转到父文件夹
cd ../
第 2 步:再次转到您的项目文件夹,
cd your-project-folder
就是这样。 它有效。
我的答案是先做npm cache clean --force
。 然后运行npm install -g npm@5.3.0
安装 npm 5.3.0 版本。 对我来说,这个 npm 版本没有问题。
只需从 npm 全局包的路径中删除包文件夹即可。 然后重新安装包。 请注意,软件包全局安装在: C:\\Users\\your-name\\AppData\\Roaming\\npm\\node_modules
我在 Windows 10 中遇到了同样的问题。只需按照以下步骤操作:
以管理员身份打开cmd。
安装更新的 npm 包。
npm i -g npm
npm init --yes
以超级管理员身份运行命令对我有用。 关闭您正在使用的编辑器后重试。
当我执行npm install
此错误
npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'
npm cache clean
node_modules
相关的node_modules
当我执行npm install
此错误
npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'
npm cache clean
node_modules
相关的node_modules
当我执行npm install
此错误
npm ERR! 错误:EPERM:不允许操作,请重命名C:\\ projects ****** \\ node_modules \\ react-async-script'->'C:\\ projects ******* \\ node_modules.react-async-script 。删除'
npm cache clean
node_modules
相关的node_modules
我关闭了 VS,删除了 node_modules 文件夹。
然后跑:
npm i -D -E clean-webpack-plugin@3.0.0 css-
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css-
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5
webpack@4.41.5 webpack-cli@3.3.10
然后必须将属性更改为在 node_modules 文件夹完成运行后不只读。
然后跑:
npm i @microsoft/signalr @types/node
然后在 VS 中打开备份项目,package.json 看起来与依赖项正确。
与其他人谈论在 node_modules 文件夹上只读并关闭 VS 以运行 npm install 相同。
经过多次尝试,我通过以下步骤解决了这个问题:
0. Run `cmd` or `powershell` as admin
npm clean cache --force
iconv
。 所以删除了iconv
和iconv-lite
app-builder
的病毒。 我在节点模块上运行 Windows Defender 并删除了该病毒。 然后,再次构建。这些步骤为我解决了
转到文件资源管理器中的 package.json 文件右键单击并选择“属性”。 取消选择只读。 点击应用
注意:(如果它已经被取消选中,请选中并取消选中只读一次,然后单击“应用”)
很可能node_modules
文件夹变成了Read Only
。 您可以尝试更新文件夹权限,但如果您没有管理员访问权限, npm install --force
将起作用。
我正在使用 iTerm。 重新启动 iTerm 后,错误消失了。
就我而言,我只是使用 cmd 以管理员身份运行 npm install
我遇到了同样的问题,在cmd
使用了npm cache clear
命令,并且open as Adminitrator
。 关闭 VScode 并重新打开它。 它奏效了。
就我而言,我在 node_modules 目录中打开了一个 Windows 资源管理器,导致了问题。 关闭它就成功了。
就我而言,事实是我实际上将项目移到了垃圾箱,从 git 重新克隆了项目,但终端似乎仍然指向在垃圾箱中移动的文件夹。 我只需要cd
回到新克隆的项目,一切都很好。
就我而言,发生此错误时,我正在执行fs.renameSync
。
似乎“新”路径已经存在,删除它不会引发错误。
它并没有真正解决问题,但如果您只是想像我一样构建应用程序,那么这可行。
reinstall NodeJS
Closed VSCode
Open VSCode to where the project
让它毫无问题地运行我带着同样的错误来到这里,按照这里的所有答案,都没有解决它。 我开始通过我的 package.json 删除所有可疑的包。 删除这个不必要的解决了我们的问题。 "npm": "^8.3.2"<\/code>
"
我认为这应该与更新 npm 问题有关。 作为现在的解决方法,您可以将 npm 版本指定为 8.3.1。
- name: Install latest npm version
run: npm install --global npm@8.3.1
2022 年 7 月,我将Angular 13 更新到 14 ,我遇到了这个问题。 上述解决方案均无效,因此我只是重新启动了笔记本电脑和npm i --force worked
似乎后台的一个进程正在锁定对某些 node_modules 文件的访问(您可能在某处运行 ng serve 或由一个 git bash 您关闭但继续在后台运行)
我多次面对这个问题。 事实证明,它与权限,缓存等无关。错误消息具有误导性。 对于节点v 6.x,您将看到更详细的错误堆栈,但不会在7.x之后看到我和我的大学,问题是超时功能。 当npm尝试删除它时,基本上包安装尚未完成(即保存目录)。 在节点6.x中你可以看到在finalize.js中它已经消失了! 只需使用纱线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.