[node.js] npm 설치 대 업데이트-차이점은 무엇입니까?

사이의 실질적인 차이는 무엇 npm installnpm update? 언제 사용해야합니까?



답변

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

또한 : installupdate기본 핸들 devDependencies에 의해 다르게

  • npm install플래그를 추가 하지 않으면 devDependencies 를 설치 / 업데이트합니다--production
  • npm update플래그를 추가 하지 않으면 devDependencies 를 무시합니다.--dev

npm install전혀 사용하지 않습니까?

npm install에서 종속성을 처리하는 것 외에 더 많은 것을 볼 수 있기 때문 입니다 package.json. npm install 에서 볼 수 있듯이 …

  • 노드 모듈 수동 설치
  • 전역으로 설정 하십시오 (쉘에 넣습니다 PATH).npm install -g <name>
  • git 태그로 설명 된 특정 버전을 설치하십시오.
  • 자식 URL에서 설치
  • 와 함께 강제로 다시 설치 --force

답변

npm installpackage.json파일 및 해당 종속성 에 나열된 모든 모듈을 설치 합니다 .

npm updatenode_modules디렉토리의 모든 패키지 와 해당 종속성을 업데이트 합니다 .

npm install express 는 Express 모듈과 해당 종속 항목 만 설치합니다.

npm update express 는 Express 모듈을 업데이트합니다 (npm@2.x로 시작하여 종속성을 업데이트하지 않음).

따라서 모듈이 이미 있고 새 버전을 얻으려는 경우 업데이트가 제공됩니다.


답변

대부분의 경우 npm에 게시 된 최신 버전의 모듈이 설치됩니다.

npm install express --save

또는 최신 버전 사용으로 모듈을 업그레이드하는 것이 좋습니다.

npm install express@latest --save --force

--save: 패키지가 종속성에 나타납니다.

추가 정보 : npm-install


답변

많은 차이점이 이미 언급되었습니다. 여기 하나 더 있습니다 :

실행 npm install소스 디렉토리의 상단에있는 것은 다양한 스크립트를 실행합니다 : prepublish, preinstall, install, postinstall. 이러한 스크립트의 기능에 npm install따라 종속성을 설치하는 것보다 훨씬 많은 작업을 수행 할 수 있습니다.

난 그냥 사용 사례 했어 prepublish부를 것이다을 make하고는 Makefile(가) 경우 종속성을 가져 오기 위해 설계되었습니다 package.json업데이트되었다. npm install내부에서 호출 Makefile하면 무한 재귀가 발생하고 호출 npm update은 정상적으로 작동하고 모든 종속성을 설치하여 make직접 호출 된 경우에도 빌드를 진행할 수 있습니다.


답변

npm update: package.json에있는 최신 노드 모듈로 설치 및 업데이트

npm install: package.json에 정의 된 설치 노드 모듈 (업데이트없이)


답변