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.