Nodejs가 Windows에서 설치된 모듈을 찾을 수 없습니다
현재 Windows에서 nodejs를 배우고 있습니다. npm.cmd를 사용하여 여러 모듈이 전체적으로 설치되었으며 nodejs가 설치된 모듈을 찾지 못했습니다. 비취를 예로 들어 보자.
npm install jade -g
Jade는 directory에 설치되어 "C:\Program Files (x86)\nodejs\node_modules"
있지만 다음 코드는 오류와 함께 실패 "Cannot find module 'jade'"
합니다.
var jade = require('jade');
그러나 jade가 로컬에 설치되면 (npm에 -g 옵션없이) 코드가 성공적으로 실행됩니다. 로컬로 설치된 모듈을 사용하고 싶지 않습니다. 디스크 공간이 낭비됩니다. 전체적으로 설치된 모듈을 Windows에서 작동하게하려면 어떻게해야합니까?
라는 환경 변수를 추가 NODE_PATH
하고로 설정 %USERPROFILE%\Application Data\npm\node_modules
(윈도우 XP), %AppData%\npm\node_modules
윈도우 맛에 모듈을 설치까지 (윈도우 7/8/10), 또는 어디든지 NPM 끝. 한 번만 수행하려면 시스템 속성 대화 상자의 고급 탭에서 시스템 변수로이 변수를 추가하십시오 (실행 control.exe sysdm.cpl,System,3
).
Windows 7+의 빠른 솔루션은 다음을 실행하는 것입니다.
rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules
언급에의 가치 NODE_PATH
노드 응용 프로그램에 모듈을 가져올 때에만 사용됩니다. CLI에서 전체적으로 설치된 모듈의 이진 파일을 사용하려면이를 모듈 PATH
없이 추가해야합니다 node_modules
(예 %AppData%\npm
: Windows 7/8/10).
오래된 이야기
나는 node.js에 익숙하지 않아서 완전히 옳을 수는 없지만 내 경험으로는 다음과 같이 작동합니다.
- -g 는 전역 라이브러리를 설치하는 방법이 아니라 시스템 경로에 배치하는 방법 일 뿐이므로 전체 경로를 작성하지 않고도 명령 줄에서 호출 할 수 있습니다. 예를 들어 노드 앱이 로컬 파일을 적게 변환하는 것이 유용 합니다. 전역으로 설치하면 모든 디렉토리에서 사용할 수 있습니다.
- node.js 자체는 npm 전역 디렉토리를 보지 않고 다른 알고리즘을 사용하여 필요한 파일을 찾습니다. http://nodejs.org/api/modules.html#modules_file_modules (기본적으로 경로의 모든 폴더를 스캔하여 시작 현재 node_modules 폴더에서 확인하십시오).
자세한 내용은 비슷한 질문을 참조하십시오 : npm을 사용하여 모듈을 전체적으로 설치하려면 어떻게합니까?
windows7 플랫폼에 있다면 다음과 같이 NODE_PATH를 변경해야합니다. %AppData%\npm\node_modules
좀비를 깨울 수 있다는 것을 알고 있지만 이것이 여전히 문제라고 생각합니다 .Windows 7에서 노드 모듈에 대한 전역 액세스가 필요하면 이것을 전역 변수 경로에 추가해야합니다.
C:\Users\{USER}\AppData\Roaming\npm
중요 : node_modules
부분 이없는 이것만이 30 분이 걸렸습니다.
Windows 10에서 작동하게하려면 폴더 %USERPROFILE%\AppData\Roaming\npm
를 PATH 에 추가하여 해결했습니다 . 데 \node_modules
다음과 같이 추가 : %USERPROFILE%\AppData\Roaming\npm\node_modules\
나를 위해 작동하지 않았다.
이 노드의 블로그 게시물 에서 인용하겠습니다 ...
일반적으로 경험 법칙은 다음과 같습니다.
- 프로그램에서 사용하려는 것을 require ( 'whatever')를 사용하여 설치하는 경우 프로젝트의 루트에 로컬로 설치하십시오.
- 쉘, 명령 행 또는 기타에서 사용하려는 것을 설치하는 경우 바이너리가 PATH 환경 변수로 끝나도록 전역으로 설치하십시오.
...
물론 두 가지를 모두 수행하려는 경우가 있습니다. Coffee-script와 Express는 모두 명령 줄 인터페이스와 라이브러리가있는 앱의 좋은 예입니다. 이러한 경우 다음 중 하나를 수행 할 수 있습니다.
- 두 곳에 설치하십시오. 정말 디스크 공간이 부족합니까? 정말 괜찮습니다. 그들은 작은 JavaScript 프로그램입니다.
- 전역으로 설치 한 다음 npm link coffee-script 또는 npm link express (심볼릭 링크를 지원하는 플랫폼에있는 경우)를 연결 한 다음 모든 심볼릭 링크를 업데이트하려면 전역 복사본 만 업데이트하면됩니다.
간단히 말하면 npm link jade
앱 디렉토리에서 사용 하십시오.
환경 변수를 추가 / 편집하고 다음과 같이 결론을 내 렸습니다.
User variables
(하단) 대신System variables
( 상단) 편집 / 추가 ; 그렇지 않으면 작동하려면 "관리자로 실행"해야합니다.- 명령 줄 도구로 사용하기 위해 추가
;%AppData%\npm
합니다Path
(지원되는 경우jshint
and 등grunt-cli
). - 프로젝트 디렉토리에 설치하지 않고 스크립트로 작성 하기 위해 작성
NODE_PATH
하고 설정하십시오 . (하지만 Vista 이상 과 같은 OS에서 작업하는 경우이 요구 사항 이 권장 됩니다 .)%AppData%\npm\node_modules
require('<pkg_name>')
npm link
mklink
테스트 환경 :
- 승리 7 (Ent., 64 비트, SP1), Node.js 4.2.4, npm 2.14.12
- 승리 8.1 (Ent., 64-bit), Node.js 0.10.30, npm 1.4.21
글로벌 모듈을 작동시키는 데 끔찍한 시간이있었습니다. 결국 C:\Users\yourusername\AppData\Roaming\npm
시스템 변수 아래의 PATH 변수에 명시 적으로 추가 했습니다. 또한이 변수가 목록의 nodejs 경로 변수 앞에 와야했습니다.
Windows 10을 실행하고 있습니다.
Windows 7 에서이 문제가 발생했습니다.
npm install -g gulp
일반 사용자로 로그온 한 상태에서 관리자로
솔루션 : 일반 사용자와 동일한 설치를 실행할 때 (cmd의 "admin으로 실행"아님) 모두 정상입니다. 기본 설치 및 검색 경로와 관련이 있다고 생각합니다.
win8.1 npm을 사용한 경험으로 모듈은 설치 C:\Users\[UserName]\AppData\Roaming\npm\node_modules
되지만 덤프는 검색합니다 C:\Users\[UserName]\node_modules
.
전체 경로별로 응용 프로그램에서 하나의 간단한 솔루션 참조 모듈 :
var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
Windows의 경우 모두 nodejs 및 npm 모듈에 환경 변수를 설정해야한다고 말했지만 그 이유를 알고 있습니까? 일부 모듈의 경우 명령 줄 도구가 있으며 모듈을 설치 한 후 C : \ Program Files \ nodejs에 [module] .cmd 파일이 있으며 창 명령에서 실행하는 데 사용됩니다. 따라서 cmd 파일을 포함하는 경로를 환경 변수 % PATH %에 추가하지 않으면 명령 창을 통해 성공적으로 시작되지 않습니다.
같은 문제가 발생하여 bower를 설치하려고했습니다. npm install -g bower
나는 이것이 아닌 다른 사용자가 노드를 설치 했기 때문이라고 생각합니다 .
노드를 제거한 다음 다시 설치했습니다. 설치하는 동안 PATH에 추가> npm 모듈 옵션에 대한이 텍스트를 보았습니다 .
노드 설치 메시지
노드 설치 후 npm install -g bower
다시 실행 했습니다. 그리고 지금 정자 작동합니다.
나처럼 자신의 사용자로 노드를 다시 설치할 필요는 없습니다. 다른 사용자가 설명했듯이 솔루션은 NODE_PATH 또는 PATH 변수 를 통해 이루어져야 합니다 .
이는 다른 사용자가 노드를 설치했거나 설치 중에 PATH에 추가> npm 모듈 옵션 이 표시되지 않은 경우에만이 문제가 발생 함을 나타냅니다.
또는 ~/.npmrc
올바른 prefix에 추가 할 수 있습니다 . 나는 C:\Program Files\nodejs
64 Win7을 위해있다.
Windows 10이 설치된 새 컴퓨터에서 visual studio 2015와 함께 node.js를 사용하고 싶기 때문에이 질문에 걸려 넘어졌습니다. Windows 7 및 8 및 8.1에서는 node.js를 사용했습니다. 직렬 및 RFXCOM 모듈로 인해이 버전을 사용해야하므로 레거시 node.js 0.10.39를 사용합니다.
Windows 10의 대답은 C : \ Users \ User \ node_modules를 사용하여 환경 변수에 NODE_PATH를 설정하는 것입니다.
Windows 10의 경우 폴더에 gulp를 로컬로 설치해야했습니다.
C : \ Users \ myaccount \ AppData \ Roaming \ npm \ node_modules
npm install gulp
이로 인해 "gulp is not aware"문제가 해결되었습니다.
그냥 다운로드에서 노드 재 설치 이 이 모든 경로 문제를 해결합니다.
명령 프롬프트 나 터미널을 다시 시작하는 것을 잊지 마십시오.
위의 모든 답변이 저에게 효과적이지 않았습니다. 결국 일을하는 유일한 것은 환경 경로 변수에 %의 AppData % \ NPM 추가했다 및 C에서 두 겨 파일을 삭제합니다 : \ 프로그램 파일 \ nodejs.
ng 패키지는 C : \ Program Files \ nodejs \ node_modules에 설치되지 않았으므로 nodejs 디렉토리에서 ng 바이너리를 사용하면 작동하지 않는 것이 분명했습니다.
C : \ Users \ MyUser에서 PATH 환경 변수-.npmrc-시스템 변수 및 / 또는 NODE_PATH를 추가하려고 이미 구성했기 때문에이 디렉토리에서 왜 검색했는지 확실하지 않습니다.
나를 위해 Windows 10에서 일했습니다. npm config set prefix %AppData%\npm\node_modules
Windows를 사용하는 경우 몇 가지 단계가 필요합니다. 1) package.json이라는 파일을 만듭니다.
{
"name": "hello"
, "version": "0.0.1"
, "dependencies": {
"express": "*"
}
}
여기서 hello는 패키지 이름이고 *는 최신 버전의 종속성을 의미합니다.
2) 프로젝트 디렉토리를 코드화하고 다음 명령을 실행하십시오.
npm 설치
의존성을 설치합니다
참고 URL : https://stackoverflow.com/questions/9587665/nodejs-cannot-find-installed-module-on-windows
'Programing' 카테고리의 다른 글
서로 다른 두 목록에 정확히 동일한 요소가 포함되어 있는지 확인하는 간단한 방법은 무엇입니까? (0) | 2020.04.18 |
---|---|
코드의 maven pom.xml에서 버전 검색 (0) | 2020.04.18 |
Gulp 설치 후 : "gulp '명령이 없습니다" (0) | 2020.04.18 |
xargs가 공백이 포함 된 파일 이름을 처리하도록 설정 (0) | 2020.04.18 |
Git의 다른 지점에있는 지점 인 '병합'이 아닌 '덮어 쓰기'는 어떻게합니까? (0) | 2020.04.18 |