NPM이 멈춰서 동일한 오류가 발생합니다. EISDIR : 디렉터리에 대한 잘못된 작업, 오류시 읽기 (기본)


102

내가 어떤 디렉토리에 있는지, cmd.exe에서 "npm"뒤에 무엇을 입력하든이 오류가 발생합니다. 다음은 npm-debug.log입니다.

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ]
2 info using npm@2.14.12
3 info using node@v4.2.6
4 verbose stack Error: EISDIR: illegal operation on a directory, read
4 verbose stack     at Error (native)
5 verbose cwd C:\Users\me
6 error Windows_NT 6.1.7601
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js"
8 error node v4.2.6
9 error npm  v2.14.12
10 error code EISDIR
11 error errno -4068
12 error syscall read
13 error eisdir EISDIR: illegal operation on a directory, read
13 error eisdir This is most likely not a problem with npm itself
13 error eisdir and is related to npm not being able to find a package.json in
13 error eisdir a package you are trying to install.
14 verbose exit [ -4068, true ]

nodejs를 여러 번 제거하고 다시 설치하려고 시도했으며 C : \ Users \ me \ AppData \ Roaming에서 npm 및 npm-cache 폴더도 삭제했습니다. 이 문제의 원인이 무엇인지 잘 모르겠습니다. 잠시만 잘 작동했고 이제이 오류를 제거 할 수 없습니다. 로그의 설명은 모든 디렉토리에서이 오류를 제공하므로 의미가 없습니다. 관리자 권한으로 명령 프롬프트를 실행해도이 오류가 발생하지 않습니다. 이 문제를 해결하기 위해 이번 금요일 저녁에 머리카락을 뽑아 내고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다!


1
이 오류는 사람들이 npm을 업데이트 할 때 흔히 발생한다는 것을 알고 있습니다.이 오류가 npm을 업데이트 할 때 시작되었는지 아니면 전혀 업데이트했는지 궁금합니다.
Clavin

새 컴퓨터이므로 지난 며칠 동안 노드를 설치했습니다. 난 그냥 adminstrator 모드에서 업데이트하지만 행운했다
AnotherMike

답변:


61

일부 npm 설정을 변경하는 동안 동일한 문제가 발생했습니다. 나는 하나의 npm config set명령 으로 실수를 했고 이것은 존재하지 않는 디렉토리를 참조하는 줄을 C:\Users\{User}\.npmrc. 에서 해당 줄을 수동으로 삭제 한 후 .npmrc문제가 사라졌습니다.


1
내가 얼마나 바보인가? 나는 하위 폴더에 있었다 ahahahah 감사합니다.
Sampgun

저도 cafile을 실제 파일 대신 폴더를 가리키고 있었고 모든 npm명령이 완전히 작동하지 않았으며 답변과 별도로 솔루션이 작동하지 않았습니다. 감사합니다!
Giorgio Tempesta

194

EISDIR 는 " Error, Is Directory "를 의미합니다. 이것은 NPM이 파일에 대해 무언가를 시도하지만 디렉토리 라는 것을 의미합니다 . 귀하의 경우 NPM은 디렉토리 인 파일 을 " 읽으 려고 "합니다 (행 : 4). 작업을 수행 할 수 없기 때문에 오류가 발생합니다.

여기서 확인해야 할 세 가지.

  1. 파일이 있는지 확인하십시오. 그렇지 않은 경우 생성해야합니다. (NPM이 파일의 특정 정보에 의존하는 경우 해당 정보가 있어야합니다.)
  2. 실제로 디렉토리가 아닌 파일인지 확인하십시오.
  3. 올바른 권한이 있습니다. "sudo chmod 777 FILE_NAME"을 사용하여 모든 권한을 갖도록 파일을 변경할 수 있습니다. (주의 : 해당 파일의 모든 사용자에게 읽기, 쓰기 및 실행 권한을 부여합니다.)

13
이 문제에 대한 정보를 포함 이것은뿐만 아니라 솔루션으로 IMO 허용 대답을해야한다
schu34

4
내가 얼마나 바보인가? 나는 하위 폴더에 있었다 ahahahah 감사합니다.
Sampgun

3
이것에 3 시간을 보냈다. back-button.css라는 폴더가 있습니다. 3 시간은 돌아 오지 않습니다. 덕분에 4 번이 아니 었습니다.
Loke

1
fs.writeFile을 사용하여 이것을 얻었지만 오류로 인해 프로그램이 FileName을 전달하지 못하여 폴더에 쓰려고했습니다. 감사.
Nelles

1
맞습니다. 이메일 관리자 용 코드를 작성하는 동안 NW.js 데스크탑 앱 에서 nodemailer 를 사용하는 동안이 문제에 직면했습니다 . 또한 첨부 파일로 보낼 이미지 파일을 읽는 대신 디렉터리를 읽으려고했습니다. 대단히 감사합니다.
hygull

13

npm을 버전 6.4.1에서 버전 6.5.0으로 업그레이드 한 후에도 오늘 같은 문제가 발생했습니다. node.js 에서 .pkg 설치 프로그램 (대부분의 사용자에게 권장 됨)을 다운로드하여이 문제를 해결 하고 나중에 실행했습니다.


똑같은 방법이 저에게 도움이되었습니다
DNReNTi

내 컴퓨터에 동일한 npm 버전이 설치되어 있지만 여전히 문제에 직면 해 있습니다
Gaurav Paliwal

9

제 경우에는 "EISDIR : 디렉토리에 대한 잘못된 작업, 읽기"가 발생했습니다. .angular-cli.json 파일에서 "스크립트"에 전체 경로를 제공하지 않았기 때문입니다.

예를 들어

"scripts": [
        "../node_modules/hammerjs",
        "../node_modules/moment"
      ],

사실 그것은

"scripts": [
        "../node_modules/hammerjs/hammer.min.js",
        "../node_modules/moment/min/moment.min.js"
      ],

7

Mac OS X (homebrew와 함께 설치됨)에서 동일한 문제가 발생했으며 .npmrc가 구성 변수를 저장하는 유일한 장소 노드는 아닙니다. / usr / local / etc에 다음 명령을 사용하여 편집해야하는 glocal npmrc 구성 파일이 있습니다.

sudo nano npmrc

ca=설치를 중단 시킨 줄 또는 구성 설정이 무엇이든 제거하고 해당 파일을 저장 한 다음 npm을 다시 시도하면 작동하는 것을 볼 수 있습니다.


도와 드릴 수있어서 기쁩니다.
rncrtr

4

이러한 이상한 오류는 최근 내 OSX 컴퓨터에서 발생했습니다.

다음을 실행하여 빠르고 더러운 방법으로 나 자신을 도울 수 있습니다.

sudo chmod -R 777 /usr/local/lib/node_modules/

모든 글로벌 노드 모듈의 액세스 권한을 엉망으로 만든 것 같습니다.


2

나를 위해 디렉토리 이름 뒤에 슬래시를 추가했습니다.


1

경로 제거 등을 포함하여 전체 제거를 수행하고 다시 설치하면 문제가 해결되었지만 매우 이상한 문제입니다.

Windows에서 node.js를 완전히 제거하는 방법


처음에는 당신의 대답이 마음에 들지 않았지만 같은 일이 나에게 일어 났음을 고백해야합니다. 로 새 meteor프로젝트를 생성하면 --react이 문제 가 발생했지만 프로젝트를 삭제하고 다시 생성하면 작동했습니다 (OS X).
Hola Soy Edu Feliz Navidad

1

나는 꿀꺽 꿀꺽 마시면서이 문제가있었습니다. 문제는 gulp가 내 소스 파일에 종속성을 추가했고 npm이 그것을 열려고했다고 생각한다는 것입니다.

{
  "name": "name",
  "version": "2.0.0",
  "description": "",
  "main": "gulpfile.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "appname": "file://gulp",
    "gulp-concat": "^2.6.1",
    "gulp-electron": "^0.1.3",
    "gulp-shell": "^0.5.2",
    "gulp-uglify": "^2.0.0",
    "gulp-util": "^3.0.7",
    "node-7z": "^0.4.0"
  }
}

package.json 파일에 이상한 참조가 없는지 확인하십시오.


1

적절한 디렉토리에서 npm install을 실행하고 있는지 확인하십시오.

(예를 들어 package.json 파일은 하나의 추가 디렉토리가 될 수 있습니다.)


1

문제가 React Native packager와 관련된 경우. 로 캐시를 재설정 해보십시오 react-native start --reset-cache.


1

제 경우에는 요청한 파일 중 하나의 전체 경로 를 전달하는 것을 잊었습니다 . 파일의 전체 경로를 전달한 후 :)


1

제 경우 에는 다음 명령 create-react-app을 사용 MAC (Mojave OS)하여 설치하는 동안이 문제에 직면했습니다 .

sudo npm install create-react-app -g

다음과 같은 오류가 발생했습니다.

npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/scheduler'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/webSocket'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/webSocket'

다음 없이 설치하려고하는 npm.community 를 읽었습니다 sudo.

npm install create-react-app -g

그리고 그것은 실제로 내 문제를 해결했습니다 .. !!


1

node_modules (및 루트 package.json)에 npm의 "package.json"모듈에 대한 참조가 포함되어 있지 않은지 확인하십시오. node_modules에서 package.json FOLDER를 삭제하면 문제가 해결되었습니다.


0

상용구 코드를 설정하는 동안 비슷한 문제가 발생했습니다. 내 bundle.js 파일을 디렉토리로 읽었습니다. 그래서 여기에 언급 된대로. EISDIR은 파일이 아니라 디렉토리를 의미합니다. 문제를 해결하기 위해 파일을 삭제하고 방금 다시 만들었습니다 (원래 자동으로 생성됨). 숨겨진 파일로 인해 파일을 찾을 수없는 경우 터미널을 사용하여 파일을 찾아 삭제하십시오.


0

.git 폴더를 삭제할 때까지 동일한 문제가 발생했습니다. 효과가있었습니다. 이 유형의 문제는 다른 원인이있을 수 있다고 생각합니다.


0

나는 같은 문제가 있었다. 내 디렉토리에 문제를 일으키는 링크 된 폴더가 있습니다. 목록을 무시하기 위해 해당 폴더를 추가 한 다음 예상대로 제대로 작동하기 시작했습니다.


0

나는 이것이 영원히 js ..에 대해 구체적으로 묻는 것이 아니라는 것을 알고 있지만 Google이 나를 여기로 인도합니다 .. 나에게는 슬래시처럼 간단했습니다.

방금 변경했습니다.

forever start -a -l /dev/null/ /var/www/node/my_file.js

에:

forever start -a -l /dev/null /var/www/node/my_file.js

그리고 오류가 사라졌습니다.


0

npm의 버전과 문제가 있는지 확인하십시오. 이 게시물 당시 동일한 문제가 발생했으며 npm 버전 (6.5)에 문제가 있음을 발견했습니다. npm 버전 6.4.1을 제거하고 다시 설치해야했고 모든 것이 다시 잘 작동하기 시작했습니다.



0

제 경우에는 다음 단계로 문제가 해결되었습니다.

  1. 종료 npm프로세스(CTRL + C)
  2. 전체 폴더 삭제
  3. 새로 만들기
  4. npm다시 달리다

0

제 경우에는 스페인어로 Windows 10을 사용하고 있으며이 버전은 영어와 스페인어 디렉토리 이름을 혼합합니다. 내 문제는 데스크탑 디렉토리에 일부 명령과 escritorio다른 명령에 대해이 이름이 있다는 것입니다. 나는 npm이 이것을 해결할 수 없다고 생각합니다. 내 해결책은 단순히 내 홈 디렉토리와 다른 C : \에서 시작하는 다른 디렉토리로 변경하는 것입니다.


0

비슷한 문제에 직면했습니다. 다음 명령을 사용하여 cafile을 설정합니다.

npm config set cafile PATH_TO_CERTIFICATE

인증서 파일 설정을 삭제하고을 설정하여이 문제를 해결할 수있었습니다 strict-ssl = false.


0

심볼릭 링크를 지원하지 않는 exFAT 드라이브에서 디렉터리를 이동하여이 문제를 해결했습니다.

내 exFat 드라이브는 osx와 bootcamp Windows 파티션간에 공유되므로 프로젝트를 복제하고 npm을 설치하려고 할 때 실패했지만 exFAT가이 기능을 지원하지 않는다고 설명하지 않습니다.

심볼릭 링크 기능을 추가하기 위해 설치할 수있는 드라이버가 있지만 간단한 npm 스크립트를 실행하는 것과 비교하여 수동으로 많은 설정을 수행해야합니다.


0

Mac OS의 경우 : nodejs 웹 사이트에서 직접 설치 한 경우 npmrc 파일은 / usr / local / etc / npmrc에 있습니다. 정의되지 않은 구성을 삭제하면이 문제가 해결됩니다.



0

제 경우에는 C:\Users\{user}\AppData\local\npm파일이 숨겨져있어서 문제 디렉토리를 찾아서 삭제할 수 없었습니다. 이것을 깨닫는 데 며칠이 걸렸습니다!

따라서 폴더를 놓치지 않도록 숨김 해제를 다시 확인하십시오! 방법을 모르는 경우이를 수행 할 수 있는 링크 가 있습니다.

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