답변:
package.json에 지정된 패키지 버전의 npm 설치 와 npm 업데이트 처리의 차이점 :
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
요약 : 유일하게 큰 차이점은 이미 퍼지 버전 관리가 설치된 이미 설치된 모듈입니다 ...
npm install
npm update
또한 : install
및 update
기본 핸들 devDependencies에 의해 다르게
npm install
플래그를 추가 하지 않으면 devDependencies 를 설치 / 업데이트합니다--production
npm update
플래그를 추가 하지 않으면 devDependencies 를 무시합니다.--dev
왜 npm install
전혀 사용하지 않습니까?
npm install
에서 종속성을 처리하는 것 외에 더 많은 것을 볼 수 있기 때문 입니다 package.json
. npm install 에서 볼 수 있듯이 ...
PATH
).npm install -g <name>
--force
npm install --save somePackage
*를 의존성에 저장할 수 있습니까?
postinstall
설치시 실행되지만 업데이트에는 실행되지 않는 것과 같은 스크립트가 있습니다.
install
와 update
다르게에 지정 등 자식의 URL, 자식 태그에 대한 작업 package.json
다음은 예제에 이러한 경우를 추가하는 좋은 것입니다.
1.3.0 -> 1.3.1
이 유사하다 ^1.3.0
곳, ^
즉, 업데이트 주요 버전 1.3.0 -> 1.4.0
.
npm install 은 package.json
파일 및 해당 종속성 에 나열된 모든 모듈을 설치 합니다 .
npm update 는 node_modules
디렉토리의 모든 패키지 와 해당 종속성을 업데이트 합니다 .
npm install express 는 Express 모듈과 해당 종속 항목 만 설치합니다.
npm update express 는 Express 모듈을 업데이트합니다 (npm@2.x로 시작하여 종속성을 업데이트하지 않음).
따라서 모듈이 이미 있고 새 버전을 얻으려는 경우 업데이트가 제공됩니다.
npm install
나 npm update
? 즉, 나는 지금 사용 npm install
하고 있으며 업데이트도하는 것처럼 보입니다. 왜 내가 사용해야하는 이유가 npm update
있습니까?
update
package.json에 관계없이 항상 최신 버전으로 업데이트되며 package.json에 install
제공된 버전을 존중합니까?
update
최신 버전의 모듈을 설치 (또는 업데이트)합니다. install
표시되지 않은 경우 최신 버전의 모듈을 설치합니다. 그렇지 않으면 현재 버전을 유지합니다.
npm update
은 package.json에 상관없이 최신 버전으로 업데이트합니다. "express": "3.x"가 있고 버전 3.1.0 인 경우 최신 3.x 태그로 업데이트됩니다. 4.x 버전이 있으면 최신 버전이 설치되지 않습니다.
대부분의 경우 npm에 게시 된 최신 버전의 모듈이 설치됩니다.
npm install express --save
또는 최신 버전 사용으로 모듈을 업그레이드하는 것이 좋습니다.
npm install express@latest --save --force
--save
: 패키지가 종속성에 나타납니다.
추가 정보 : npm-install
npm install express@latest --save --force
내가 원하는 바로 그 것이었다.
많은 차이점이 이미 언급되었습니다. 여기 하나 더 있습니다 :
실행 npm install
소스 디렉토리의 상단에있는 것은 다양한 스크립트를 실행합니다 : prepublish
, preinstall
, install
, postinstall
. 이러한 스크립트의 기능에 npm install
따라 종속성을 설치하는 것보다 훨씬 많은 작업을 수행 할 수 있습니다.
난 그냥 사용 사례 했어 prepublish
부를 것이다을 make
하고는 Makefile
(가) 경우 종속성을 가져 오기 위해 설계되었습니다 package.json
업데이트되었다. npm install
내부에서 호출 Makefile
하면 무한 재귀가 발생하고 호출 npm update
은 정상적으로 작동하고 모든 종속성을 설치하여 make
직접 호출 된 경우에도 빌드를 진행할 수 있습니다.
redis
모듈 및 other_module
이전 버전의 필요 redis
, npm install other_module
즉 보장합니다 other_module
이전 버전을 사용합니다. other_module/node_modules/redis
필요한 경우 추가 할 수 있습니다 .
~1.3
어때요?