나는 DerbyJS를 배우려고 결심했다. 그리고 이것은 NodeJS에 대한 나의 첫번째 아는 사람이다.프로젝트 의존성을 전역으로 설치하고`node_modules /`없이 프로젝트를 실행하는 방법 - 어떻게?
derby new foo
으로 새 노드/더비 프로젝트를 만듭니다. 또한 node_modules/
폴더를 생성합니다. 여기에는 프로젝트가 의존하는 모든 패키지의 복사본이 들어 있습니다.
빈 Derby 프로젝트의 node_modules/
하위 디렉토리는 144MB 크기이며 12967 개의 파일 (sic!)을 포함합니다. Ruby의 RubyGems, RVM 및 Bundler에 익숙한 사람으로서, 나는 이것을 미친 것으로 생각한다. 내가 얼마나 잘못했는지 표현할 수는 없다. (실제로 나는 그 광란에 대해 견고한 논증을 가지고있다. 그러나 StackOverflow는 논쟁의 장이 아니다.)
나는 npm의 -g
플래그가 나를 도울 것이라고 생각했다. 전 세계적으로 모든 패키지를 설치할 수 있다고 말했습니다. 그래서 :
derby new -n foo
cd foo
sudo npm install -g
이제 내 프로젝트의 무게는 152KB이고 24 개의 파일이 포함되어 있습니다. 이제는 합리적입니다.
그러나 나는 그것을 실행하지 않습니다. 내가 npm start
을 수행 할 때, 나는 "를 '표현'모듈을 찾을 수 없습니다"얻을 :
[email protected]:~/hello_derby2$ npm start
> [email protected] start /home/lolmaus/hello_derby2
> node server.js
Master pid 29884
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/lolmaus/hello_derby2/lib/server/index.js:1:77)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
그래서 질문은 다음과 같습니다 중앙 로컬 저장소로 프로젝트의 종속성을 설치하고 F 번호를 박동하지 않고 프로젝트를 실행합니까 어떻게 내 보관 용 계정에서의 @k?
시스템과의 싸움을하지 마십시오. 의존성을 로컬에 설치하는 것은 아주 좋은 일이며, 좋은 이유가 있습니다. (https://npmjs.org/doc/faq.html#Why-can-t-npm-just-put-everything-in-one- 장소와 같은 패키지 관리자). – josh3736