보통은 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\nodejs
와 C:\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%" %*
이 스크립트는 %~dp0
npm-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