当我执行npm install时,我得到这个错误

npm犯错!C:\projects*******\node_modules.react-async-script. delete

我以管理员身份运行cmd 我之前运行过npm cache clean 我确保所有其他应用程序没有打开任何与node_modules相关的东西


我得到了同样的错误,根据https://github.com/Medium/phantomjs/issues/19,这可能是由你的杀毒软件引起的。我在安装期间禁用了我的,并以管理员身份在cmd上执行“npm install”,它工作了。 希望这能有所帮助。


我也得到了同样的东西。我没有在任何地方找到这个,但它击中了我,我们的虚拟机倾向于将文件更改为只读状态。于是我打开了包裹。在“常规”选项卡中取消选择“只读”。

步骤

去找包裹。json文件。 右键单击并选择属性。 在“常规”页签的“属性”部分,取消选择“只读”。 单击Apply以应用更改。


我得到它工作时,尝试npm安装与一个强制选项获取远程资源,即使本地副本存在于磁盘上。尝试运行

npm install --force

更新 对我的一些同事来说,这个解决方案并不奏效。但是我们尝试用yarn代替npm。它的工作(更快)没有任何问题的所有时间

yarn install [package-name]

不包。Json,但是由于某种原因,我的node_modules/变成了只读。重置后这个问题就解决了。


在我的情况下,这很有帮助:

在继续执行这些命令之前,关闭所有VS Code实例。

使用 NPM缓存清理——force 以管理员身份全局安装最新版本的NPM: NPM install -g npm@latest——force 使用 NPM缓存清理——force 尝试再次安装组件。

我希望这能解决你的问题。如果不是,您可以暂时禁用防病毒程序,然后重试。


我在更新到npm到5.4.2后遇到了同样的问题,npm开始对大多数npm命令给出相同的错误。一些解决方案建议使用—no-optional运行它,但它并不总是有效。

其他人建议降级,但我不想降级。

我怀疑是安装有问题,但不确定是什么问题。

所以我重新更新了npm:

npm i -g npm

从那以后工作得很好。


NPM在scandir方面对我来说是失败的:

npm install -g webpack

...这可能是由于NPM试图“修改”文件,这些文件可能被其他进程锁定,正如这里提到的和其他一些github线程。在强制清理缓存、验证缓存、以管理员身份运行、禁用AV等之后,对我来说实际有效的解决方案是关闭任何可能锁定文件的东西(即重新启动我的计算机)。

我希望这能帮助那些正在挣扎的人。


我的答案是做npm缓存清理——强制优先。然后执行npm install -g npm@5.3.0命令安装npm 5.3.0版本。对我来说,这个NPM版本毫无问题。


如果你想避免——force选项(这总是一个更好的方法),我建议确保你已经停止运行项目,因为这通常是锁定文件的主要原因,在我所见过的90%的情况下

我建议按照以下顺序:

1-在Angular中停止ng,在React中停止npm start通常可以解决这个问题,因为通常这个错误发生在开发服务器正在运行项目时,因为它锁定了一些文件,然后npm无法更新它们,从而抛出这个错误

2-如果上面没有工作,那么尝试关闭有工作空间打开的代码编辑器(可能它锁定了一些文件或其他东西)

所以尝试关闭代码编辑器并运行:

npm install

3-如果还是不行,也许你可以试试——force选项

npm install --force

这是反病毒软件导致的典型错误。对于像我这样的情况,有一个变通办法,我不能禁用a /V(公司政策)。

你必须改变Npm包中的polyfills.js:

[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是否设置为只读和 如果是,请删除 删除node_modules / 检查是否打开了任何编辑器 它可以访问项目的根文件夹 重启:

通常在这些步骤中的一个之后尝试npm install会解决这个问题。


我也有同样的问题。出现错误的原因是文件路径中不支持的字符。取代了英语中的西里尔字母——这很有帮助。


对于一些人来说,AppRoot\npm文件夹可能是一个问题。有时AppRoot文件夹被标记为网络共享,因此反病毒阻止的东西。按照下面的链接完整的解决方案。

https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

我希望这能有所帮助。


我做了以下事情:

将npm升级到最新版本:npm install -g npm@6.5.0-next.0 删除npm-cache文件夹from: c:/users/[username]/AppData/Roaming/npm-cache 缓存清理:npm缓存清理-force 运行npm install。


以管理员身份打开命令提示符,导航到项目位置,然后运行npm install。这对我很管用。


只需从npm全局包的路径中删除包文件夹。然后重新安装。 注意,这些包是全局安装在: C:\Users\your-name\AppData\Roaming\npm\ node_modules


在我的例子中,有些东西被锁住了,然后快速重启就解决了。


试图将文件重命名为另一个已经存在的文件名可能会在Windows上导致EPERM错误。


我在windows 10中也遇到了同样的问题。 只需遵循以下步骤:

以管理员身份打开cmd。 安装更新的NPM包。 I -g NPM NPM init——是的


我多次面对这个问题。 事实证明,它与权限、缓存等无关。错误消息具有误导性。 对于节点v6。在7.x之后,你会看到更详细的错误堆栈 对我和我的大学来说,问题是超时函数。基本上,当npm试图删除它时,包安装还没有完成(即保留目录)。节点6。X,你可以看到在finalize.js中,它消失了! 只用纱线。


正如Martin Kearn在评论中指出的,关闭Visual Studio为我解决了这些npm权限问题。显然,VS有时会锁定node_modules中的文件。


以超级管理员身份运行命令对我来说很有效。关闭正在使用的编辑器后重试。


我用元数据标记重新挂载了我的窗口磁盘,并立即提供了帮助:https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/

在此之后,不再需要为NPM命令使用sudo,因为元数据将检查Windows和Linux文件/目录权限。


我也曾为此挣扎过。 如果你使用nvm,我终于有了一个很好的解决方案:

cd ~ /。Nvm /versions/node/{你的节点版本}/lib/ 安装NPM

就是这样。


这可能是由于您的杀毒软件。如果你不能禁用AV,那么你可以尝试在节点安装到APPDATA目录时修改你的NPM全局安装位置,该目录由AV引擎主动监控。尝试执行以下命令-

npm配置你的自定义位置 npm设置缓存“YOUR CUSTOM LOCATION”

删除node_modules目录并重新安装包。


在我的例子中设置typescript。disableAutomaticTypeAcquisition在Visual Studio Code中设置为true似乎有帮助。


在Windows上运行npm: v6.9.0 && node: v10.16.1的情况下,我必须以管理员身份运行CLI (git bash)。然后安装包,没有任何警告/错误


对我来说,我只是关闭代码编辑器(VS Code),然后运行相同的命令。这就解决了我的问题。


关闭PHPStorm为我解决了这个问题。


我关闭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中打开项目和包。Json与依赖项看起来是正确的。

与其他人讨论的只读node_modules文件夹和关闭VS运行npm install over相同。


如果你在PHP Storm上有问题:

关闭终端选项卡 打开一个新的终端选项卡


经过多次尝试,我用以下步骤解决了这个问题:

 0. Run `cmd` or `powershell` as admin

NPM Clean cache——force 删除%AppData%/npm-cache/的内部 删除%临时% 删除导致错误的npm模块。对我来说是iconv。所以删除了iconv和iconv-lite 当我再次构建时,我得到了失败的原因作为应用程序构建器内的病毒。我在节点模块上运行了windows防御程序并删除了病毒。然后,重新构建。 这一次我成功了。


我在VSCode中使用终端,我意识到我正在使用bash终端而不是节点终端。


以管理员身份运行CLI总是能帮我解决问题


最有可能的是node_modules文件夹变成了只读。你可以尝试更新文件夹权限,但如果你没有管理员权限,npm install——force将会工作。


我用的是macOS catalina,

 npm init 

我得到了错误

 operation not permitted, uv_cwd

在2021年,你可以这样解决这个问题。

非常简单:

步骤1:进入父文件夹

 cd ../
         

第二步:再次进入项目文件夹,

 cd  your-project-folder

就是这样。它的工作原理。


我用的是iTerm。重新启动iTerm后,错误就消失了。


只要关闭VS Code来解决我的问题


我也遇到了同样的问题,在cmd中使用npm缓存清除命令,以管理员身份打开。关闭VScode并重新打开它,它工作了。


在我的例子中,我有一个Windows资源管理器打开到node_modules目录,这导致了问题。关闭这个窗口就成功了。


在我的情况下,这是事实,我实际上移动的项目到垃圾,从git重新克隆的项目,但似乎终端仍然指向文件夹移动到垃圾。我只需要cd返回到新克隆的项目,一切都工作得很好。


对我来说,我做的是f。renameSync当此错误发生时。

“new”路径似乎已经存在,删除它不会抛出错误。

这并不能真正解决问题,但如果你像我一样想要构建应用程序,这是可行的。


我重新安装NodeJS 关闭VSCode 打开VSCode到项目所在的位置,让它正常运行


我带着同样的错误来到这里,循着这里所有的答案,没有一个能解决它。我开始检查我的包裹。Json删除所有可疑的包。去掉这个不必要的就解决了我们的问题。:“npm ^ 8.3.2”


我认为这应该与更新npm问题有关。现在你可以把npm的版本指定为8.3.1。

  - name: Install latest npm version
    run: npm install --global npm@8.3.1

我正在把Angular 13升级到14,就遇到了这个问题。 这些解决方案都不起作用,所以我只是重新启动笔记本电脑,npm I—force起作用了! 看起来好像后台有一个进程锁住了对某些node_modules文件的访问权限(你可能在某个地方运行了一个ng服务,或者由一个git bash启动,你关闭了它,但在后台一直运行)


这个简单的方法对我很管用

以管理员身份打开PowerShell

执行此命令 npm我