[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
그게 다야