npm 오류! 오류 : EPERM : 작업이 허용되지 않음, 이름 변경


109

실행할 npm install때이 오류가 발생합니다.

npm 오류! 오류 : EPERM : 작업이 허용되지 않음, C : \ projects ****** \ node_modules \ react-async-script '->'C : \ projects ******* \ node_modules.react-async-script .지우다'

  • cmd를 관리자로 실행 중입니다.
  • 나는 npm cache clean전에 달렸다
  • 다른 모든 응용 프로그램에 node_modules열기 와 관련된 항목이 없는지 확인했습니다.

2
관리자가 나를 위해 일한 것처럼 cmd를 실행
— Homer

제 경우에는 일반 사용자 (관리자 아님)로 실행해야했는데 작동했는데 사용자 권한 충돌로 보입니다. 그러나 여기에 제공된 다른 모든 솔루션은 npm clean, npm install이 필요하지 않습니다. 사용자 권한 문제입니다. 더 많은 사람이 확인할 수 있으면 새 답변을 게시 할 수 있습니다.
— MG 개발자

답변:


124

제 상황에서는 이것이 도움이되었습니다. 이 명령을 실행하기 전에 모든 VS Code 인스턴스를 닫습니다.

  1. 캐시 정리

    npm cache clean --force
  2. 관리자 권한으로 최신 버전의 npm을 전역 적으로 설치합니다.

    npm install -g npm@latest --force
  3. 캐시 정리

    npm cache clean --force
  4. 구성 요소를 다시 설치하십시오.

문제가 해결되기를 바랍니다. 그렇지 않은 경우 바이러스 백신 프로그램을 일시적으로 비활성화하고 다시 시도 할 수 있습니다.


1
@ kamil.ka 감사합니다. 이것은 Windows에서 내 문제였습니다. Atom이 package.json을 잠그고 있으므로 npm 설치가 변경할 수 없습니다.
— George

29
같은 주석을 닫습니다 ... Windows에서 VS 코드에 적용하고 문제가 사라집니다
— 마틴 Kearn

1
저에게는 다른 노드 프로세스가 실행되었습니다. 제 경우에는 json-server였습니다. 일단 패키지가 오류없이 설치되었음을 중지했습니다.
— EddieB

나를 위해 "ERR! enoent 이것은 npm이 파일을 찾을 수없는 것과 관련이 있습니다."와 같은 오류가 Visual Studio 코드의 모든 인스턴스를 종료하여 해결되었습니다.
— Abhishek 19

때때로 우리는 업데이트되지 않은 모듈 링크를 포함하여 모든 js 파일을 포함하는 webpack의 사용을 감독합니다. app.js. 따라서 npm 업데이트 후 npm run watch. 그 후 제 경우에는 새로운 app.js 파일에서 적절한 모듈 링크가 업데이트되었습니다.
— Peter van der Lely

21

아닙니다 package.json. 그러나 어떤 이유로 든 node_modules/읽기 전용이되었습니다. 재설정하면 문제가 해결되었습니다.


나 의미에 대해 "재설정" 1.VS 닫기, 2.삭제가 node_modulesFileExplorer에서 3.내 PC를 다시 시작 4.실행을 npm install --force. 그런 다음 마침내 작동했습니다.
— EGC

21

디스크에 로컬 복사본이 있어도 원격 리소스를 가져 오는 강제 옵션으로 npm 설치를 시도했을 때 작동합니다. 실행 해보세요

npm install --force

업데이트 된 이 솔루션이 작동하지 않는 내 동료 중 일부. 그러나 우리는 npm 대신 원사를 사용해 보았습니다 . 항상 문제없이 작동합니다 (더 빠르게)

yarn install [package-name]

다른 사람들은 AV 소프트웨어를 끄라고 제안했습니다. 나에게는 내가있는 네트워크에서 이것은 선택 사항이 아니 었습니다. --force 플래그는 나를 위해이 문제를 해결
— user2590928

실을 사용해서 만 문제를 해결 했으니 한 번 찍어 보길 권한다.
— Ângelo Polotto

20

당신이 피하려면 --force옵션을 (더 나은 방법이 항상이다) , 이 보통 내가 본 사례의 약 90 %에있는 파일을 잠금의 주된 이유이기 때문에 나는 프로젝트를 실행 당신이 중지했는지 만들기 제안

이 순서대로 다음 단계를 제안합니다.

1- Angular에서 중지 ng s하고 React에서 중지하면 npm start 일반적 으로이 문제가 해결됩니다. 왜냐하면 개발 서버가 일부 파일을 잠그고 npm이 파일을 업데이트 할 수 없기 때문에이 오류가 발생하는 경우 일반적으로이 오류가 발생하기 때문입니다.

2- 위의 방법이 작동하지 않으면 작업 공간이 열려있는 코드 편집기를 닫으십시오 (일부 파일 등을 잠근 것일 수 있음).

따라서 코드 편집기를 닫고 실행 해보십시오.

npm install

3- 그래도 작동하지 않으면 --force옵션을 시도해 볼 수 있습니다.

npm install --force

2
이것은 내 문제였습니다. VS Code의 터미널을 통해 node_modules 폴더를 rimraff했습니다-어떤 이유로 내 파일 시스템에서 node_modules를 제거하지 않았고 잠겼습니다. VS Code의 창을 닫고 다시 열어서 실제로 제거되고 npm install을 다시 실행할 수 있습니다.
— Stu Furlong

13

동일한 오류 가 발생했으며 https://github.com/Medium/phantomjs/issues/19 에 따르면 바이러스 백신 소프트웨어로 인해 발생할 수 있습니다. 나는 설치하는 동안 내 것을 비활성화하고 cmd에서 "npm install"을 관리자로 실행했고 작동했습니다. 도움이 되었기를 바랍니다.


1
당 github.com/npm/npm/issues/12059 이 수정되었습니다. 어떤 릴리스가 될지에 대한 단어는 없습니다. 댓글에 따라 AV 비활성화가 항상 작동하는 것은 아닙니다.
— user1821052 2016

제 경우에는 설치 중에 SourceTree를 닫아야했습니다.
— Dejan

13

나를 위해 코드 편집기 (VS 코드)를 닫은 다음 동일한 명령을 실행했습니다. 그리고 그것은 나를 위해 문제를 해결합니다.


9

Martin Kearn이 의견에서 지적했듯이 Visual Studio를 닫으면 이러한 npm 권한 문제가 해결되었습니다. 분명히 VS는 때때로 node_modules.


8

나는 똑같은 것을 얻고 있었다. 나는 이것을 어디서도 찾지 못했지만 우리의 VM이 파일을 읽기 전용 상태로 변경하는 경향이 있다는 사실에 충격을 받았습니다. 그래서 package.json의 파일 속성을 열고 Read-only"일반"탭에서 선택을 취소 했습니다.

단계

  1. package.json파일로 이동 하십시오.
  2. 마우스 오른쪽 버튼을 클릭하고 속성을 선택 합니다.
  3. 에서 일반 탭, 속성 을 선택 취소 섹션을 읽기 전용 .
  4. 적용 을 클릭 하여 변경 사항을 적용하십시오.

원래 문제는 일반적으로 코드를 사용하여 설치한다는 것이었지만 나를 위해 읽기 전용입니다. 이 경우에는 Visual Studio에서 앱의 새 인스턴스를 열어 이전 버전의 일부 변경 사항을 이식 할 수 있었고 VS는 즉시 자체 설치를 시작했습니다. 그런 다음 평소처럼 npm install을 실행하는 코드를 열었고 두 앱이 모두 어지러워졌습니다. 여러 번 실패한 후 변경 사항을 다시 이식 할 수 있도록 앱의 작동중인 루트 버전에서 노드 모듈을 대량 삭제했습니다. 이 폴더는 읽기 전용이므로 차단 작업을 수행했습니다.
— Matrim

8

이것은 바이러스 백신으로 인해 발생하는 일반적인 오류입니다. 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)
}

당신은 진정한 MVP입니다.
— Atanas Korchev

4

제 경우에는 무언가가 잠 겼고 빠른 재부팅으로 해결되었습니다.


4

이 문제는 Windows에서만 여러 번 발생했으며 일반적으로 순서대로 시도합니다.

  1. npm install --force
  2. node_modules가 읽기 전용으로 설정되어 있는지 확인하고 그렇지 않은 경우 제거하십시오.
  3. 지우다 node_modules/
  4. 프로젝트의 루트 폴더에 액세스 할 수있는 편집기가 열려 있는지 확인합니다.
  5. 재부팅 :(

일반적 npm install으로 이러한 단계 중 하나를 수행하면 문제가 해결됩니다.


2

파일 이름을 이미 존재하는 다른 파일 이름으로 바꾸려고하면 EPERMWindows 에서 오류 가 발생할 수 있습니다 .



2

npm을 5.4.2로 업데이트 한 후에도 동일한 문제가 발생했으며 npm은 대부분의 npm 명령에 대해 동일한 오류를 제공합니다. 일부 솔루션은으로 실행하도록 제안 --no-optional하지만 항상 작동하지는 않았습니다.

다른 사람들은 다운 그레이드를 제안했지만 다운 그레이드하고 싶지 않았습니다.

나는 설치에 문제가 있다고 의심했지만 그것이 무엇인지 확실하지 않았습니다.

그래서 내 npm을 다시 업데이트했습니다.

npm i -g npm

그 이후로 잘 작동했습니다.


1

npm이 나를 scandir위해 실패 했습니다.

npm install -g webpack

... 여기에 언급 된 다른 프로세스 와 몇 가지 다른 github 스레드에서 잠재적으로 잠긴 파일을 "수정"하려는 npm으로 인해 발생할 수 있습니다 . 강제로 캐시를 정리하고, 캐시를 확인하고, 관리자로 실행하고, AV를 비활성화하는 등 실제로 저에게 도움이 된 솔루션 은 파일을 잠글 수있는 모든 것을 닫는 것입니다 (예 : 컴퓨터 다시 시작).

나는 이것이 고군분투하는 누군가에게 도움이되기를 바랍니다.


1

나는 같은 문제가 있었다. 오류의 원인은 파일 경로에 지원되지 않는 문자가 있기 때문입니다. 키릴 문자를 영어로 대체했습니다.



1

다음을 수행했습니다.

  1. npm을 최신 버전으로 업그레이드했습니다. npm install -g npm@6.5.0-next.0
  2. npm-cache 폴더를 다음에서 삭제했습니다. c:/users/[username]/AppData/Roaming/npm-cache
  3. 캐시가 정리 되었습니까? npm cache clean --force
  4. RAN에 npm install.

1

관리자 권한으로 명령 프롬프트를 열고 프로젝트 위치로 이동 한 다음 npm install을 실행합니다. 그것은 나를 위해 일했습니다.


1

npm: v6.9.0&& node: v10.16.1on을 실행하는 경우에는 WindowsCLI (git bash) 를 관리자 권한으로 실행해야했습니다 . 그런 다음 경고 / 오류없이 패키지가 설치되었습니다.


0

내 대답은 npm cache clean --force먼저하는 것입니다. 그런 다음 실행 npm install -g npm@5.3.0하여 npm 5.3.0 버전을 설치하십시오. 나를 위해,이 npm 버전은 문제없이 작동합니다.


0

npm 글로벌 패키지 경로에서 패키지 폴더를 삭제하면됩니다. 그런 다음 패키지를 다시 설치하십시오. 패키지는 C : \ Users \ your-name \ AppData \ Roaming \ npm \ node_modules에 전역 적으로 설치됩니다.


0

Windows 10에서 동일한 문제가 발생했습니다. 다음 단계를 따르십시오.

  • 관리자 권한으로 cmd를 엽니 다.

  • 제공된 npm 패키지를 설치하십시오.

  • npm 나는 -g npm

  • npm init-예


0

최고 관리자로 명령을 실행하는 것이 나를 위해 일했습니다. 작업중인 편집기를 닫은 후 다시 시도하십시오.


0

나도 이것으로 고생했다. nvm을 사용하면 잘 작동하는 솔루션을 완성했습니다.

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

그리고 그게 다야.


0

이는 바이러스 백신 소프트웨어 때문일 수 있습니다. AV를 비활성화 할 수없는 경우 AV 엔진에서 적극적으로 모니터링하는 APPDATA 디렉터리에 노드를 설치할 때 NPM 전역 설치 위치를 수정 해 볼 수 있습니다. 다음 명령을 실행 해보십시오.

npm 구성 세트 접두사 "YOUR CUSTOM LOCATION"npm 구성 세트 캐시 "YOUR CUSTOM LOCATION"

node_modules 디렉토리를 삭제하고 패키지를 다시 설치하십시오.


0

제 경우 typescript.disableAutomaticTypeAcquisition에는 Visual Studio Code의 설정 true이 도움 이 된 것 같습니다.


0

PHPStorm을 닫으면 문제가 해결되었습니다.


0

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 설치를 실행하는 것과 같은 줄을 따라갑니다.


0

PHP Storm에 문제가있는 경우 :

  1. 터미널 탭 닫기
  2. 새 터미널 탭 열기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.