[deployment] npm을 사용하여 현재 디렉토리에 package.json 종속성을 설치하는 방법

웹 응용 프로그램이 있습니다 : fooapp . 나는 package.json뿌리에 있습니다. 특정의 모든 종속성을 설치하고 싶습니다 node_modules directory. 어떻게해야합니까?

내가 원하는 것

두 가지 widget종속성 이 있다고 가정 해 봅시다 . 다음과 같은 디렉토리 구조로 끝내고 싶습니다.

node_modules/
  widgetA
  widgetB
fooapp/
  package.js
  lib
  ..

내가 얻는 것

내가 실행할 때 나는 npm install fooapp/ 이것을 얻는다 :

node_modules/
  fooapp/
    node_modules/
      widgetA
      widgetB
    package.js
    lib/
    ..
fooapp/
  package.js
  lib/
  ..

npm은 node_modules 디렉토리에 내 앱 디렉토리의 사본을 만들고 다른 node_modules 디렉토리에 패키지를 설치합니다 .

패키지 설치에 적합하다는 것을 이해합니다. 그러나 나는 require()다른 웹 응용 프로그램 내에서 웹 응용 프로그램을 사용 하지 않고 직접 실행합니다. 종속성을 특정 node_modules 디렉토리에 설치하는 간단한 방법을 찾고 있습니다.



답변

달리는:

npm install

여기에 설명 된 것처럼 앱 디렉토리 내부 (예 : package.json이있는 곳) 에서 모듈로 설치하지 않고 앱 의 종속성 설치합니다 . 이들은 package.json 파일과 관련하여 ./node_modules에 배치됩니다 (실제로는 이것보다 약간 더 복잡하므로 여기서 npm 문서를 확인 하십시오 ).

원하는 경우 node_modules 디렉토리를 앱의 부모 디렉토리로 자유롭게 이동할 수 있습니다. 노드의 ‘필수’메커니즘이이를 이해하기 때문입니다. 그러나 설치 / 업데이트로 앱의 종속성을 업데이트하려는 경우 npm은 재배치 된 ‘node_modules’를 보지 않고 대신 package.json을 기준으로 새 디렉토리를 만듭니다.

이를 방지하려면 앱 디렉토리에서 재배치 된 node_modules에 대한 심볼릭 링크를 만드십시오.

ln -s ../node_modules node_modules


답변

내 경우에는해야 할 일

sudo npm install  

내 프로젝트는 / var / www 안에 있으므로 적절한 권한을 설정해야합니다.


답변

그냥 실행

sudo npm i --save

그게 다야


답변