[node.js] npm을 실행할 때 npm-cli.js를 찾을 수 없음

보통은 npm을 이용하여 라이브러리를 설치할 수 있지만 오늘은 여만을 설치할 때이 오류가 발생했습니다. 근본 원인을 파악하는 데 도움을주세요.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

폴더를 살펴 보았습니다.

C : \ Program Files \ nodejs \ node_modules \ npm \ bin \

하지만 설명 된 오류로 node_modules 폴더 가 표시되지 않습니다 .

또한 npm-cli.js 를 찾고 실제로C:\Program Files\nodejs\node_modules\npm\bin\



답변

문제는 시스템 변수에서 노드의 잘못된 경로로 인한 것으로 밝혀졌습니다. 경로가 현재 가리키는

(정말 언제 수정했는지 모르겠습니다)

C:\Program Files\nodejs\node_modules\npm\bin

그래서 나는

C:\Program Files\nodejs

그리고 그것은 매력처럼 작동합니다.


답변

명령 줄에서 실행해야합니다.

SET PATH=C:\Program Files\Nodejs;%PATH%


답변

경로에 당신이 가지고있는 경우에도이 문제가있을 수 있습니다 C:\Program Files\nodejsC:\Program Files\nodejs\node_modules\npm\bin. 경로에서 후자를 제거


답변

방금 NodeJS 설치를 수리했는데 저에게 효과적이었습니다!

Control Panel\All Control Panel Items\Programs and Features->로 이동하여 NodeJS수리 옵션을 찾아 선택하십시오. 도움이 되었기를 바랍니다.


답변

npm설치된 노드 경로에서 이름이 지정된 디렉토리를 복사합니다 (내 경우에는 npm 디렉토리를에서 사용할 수 있음 C:\Program Files\nodejs\node_modules).

C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules복사 한 npm디렉토리 를 찾아 붙여 넣 습니다.

이 방법은 동일한 오류가 발생했을 때 저에게 효과적이었습니다. . .


답변

이것은 질문에서와 같은 경우는 아니지만 비슷한 문제에 직면 한 사람에게 도움이 될 수 있습니다. Windows npm에서 일부 CI / 자동화 도구에서 명령을 호출하는 경우 다음 오류가 발생할 수 있습니다.

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

어디 SOME_PATH하지 않습니다 Program Files/...하지만 일부 프로젝트 디렉토리 대신. 따라서 npm은 .NET에서 검색하는 대신 프로젝트 루트 디렉터리에서 npm-cli.js를 찾으려고합니다 Program Files/nodejs.

그 이유는 npm.cmd 스크립트입니다.

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

이 스크립트는 %~dp0npm-cli.js를 조회하는 데 사용 하지만 일부 자동화 도구 %~dp0는 스크립트가 잘못 작동하도록 로컬 프로젝트 디렉토리 를 가리키는 방식으로 작업 디렉토리를 설정할 수 있습니다.

한 가지 가능한 해결책은 이것에서 npm 호출을 변경하는 것입니다.

npm.cmd install

이에

cmd.exe /c npm.cmd install


답변

다른 답변 중 어느 것도 나를 위해 일하지 않았습니다.

내가 쓴 내용은 다음과 같습니다 (Windows의 git bash 쉘에서).

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman