--save 플래그는 npm install로 무엇을합니까?


103

다음 중 하나를 사용하여 패키지를 설치하는 방법을 확인합니다.

npm install <package_name>

또는

npm install <package_name> --save

또는

npm install <package_name> --save-dev

이 옵션의 차이점은 무엇입니까?

답변:


89

npm install <package_name> --save패키지를 설치하고 package.json의 종속성을 업데이트합니다. 이 질문을 받았기 때문에 npm이 변경되어 --save기본 옵션이되었으므로 --save종속성을 업데이트하는 데 사용할 필요가 없습니다 .

npm install <package_name> --no_save 패키지를 설치하지만 package.json에 나열된 종속성을 업데이트하지는 않습니다.

npm install <package_name> ---save-devdevDependencies패키지 에서을 업데이트합니다 . 이들은 로컬 테스트 및 개발에만 사용됩니다.

https://docs.npmjs.com/getting-started/using-a-package.json 에서 자세한 내용을 읽을 수 있습니다 .


3
이것은 "npm --save flag"에 대한 내 Google 검색에 대한 최고 답변이었습니다. --save은 이제 기본이다 정확한 정보, 즉 함께 업데이트 고려주세요 --no-저장 package.json 종속리스트 업데이트되지하기 위해 필요
조나스 Rosenqvist

53

npm install은 기본 package.json에서 패키지 버전을 저장하거나 업데이트하는 3 개의 독점적 인 선택적 플래그를 사용합니다.

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

-D, --save-dev: 패키지가 devDependencies에 나타납니다.

-O, --save-optional: optionalDependencies에 패키지가 나타납니다.

위의 옵션 중 하나를 사용하여 package.json에 대한 종속성을 저장할 때 추가 옵션 플래그가 있습니다.

-E, --save-exact: 저장된 종속성은 npm의 기본 semver 범위 연산자를 사용하는 대신 정확한 버전으로 구성됩니다. 또한 npm-shrinkwrap.json이있는 경우에도 업데이트됩니다.

<scope>선택 사항입니다. 패키지는 지정된 범위와 관련된 레지스트리에서 다운로드됩니다. 지정된 범위와 관련된 레지스트리가 없으면 기본 레지스트리로 간주됩니다. npm-scope를 참조하십시오.

참고 : 범위 이름에 @-기호를 포함하지 않으면 npm이 대신이를 GitHub 저장소로 해석합니다 (아래 참조). 범위 이름 뒤에는 슬래시가 와야합니다.

예 :

npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact

참고 : <name>현재 작업 디렉토리에 이름이 지정된 파일이나 폴더가 있으면이 를 설치하고 유효하지 않은 경우에만 이름으로 패키지를 가져 오려고 시도합니다.

(공식 문서에서) https://docs.npmjs.com/cli/install


52
그동안 --save옵션은 여전히 작업에 나타납니다, 더 이상 필요하지 않습니다 - 패키지가 지금 의존성에 저장됩니다 기본적으로 . 이제 논리가 반전되었습니다. 패키지를 저장 하지 않으 려면 다음을 지정해야합니다.--no-save
Coruscate5

감사합니다. @ Coruscate5가 제 질문에 정확히 대답했습니다.
Kon

29

--save플래그는 더 이상 가치가 없다.

이전에는 다른 답변에서 언급했듯이 --save플래그가 프로젝트 package.json파일 의 종속성을 업데이트 했지만 npm install이제는 기본적으로이 기능을 포함합니다.

이 시점 npm install에서 종속성 저장 을 방지 하려면 --no-save플래그 를 사용해야합니다 .

그들의 의견에 이것을 언급 한 Coruscate5에게 감사드립니다 .

npm-install 문서 의 추가 정보 :

npm install은 기본적으로 지정된 패키지를 종속성에 저장합니다. 또한 몇 가지 추가 플래그를 사용하여 저장 위치와 방법을 제어 할 수 있습니다.

-P, --save-prod : 패키지가 종속성에 나타납니다. -D 또는 -O가 없으면 이것이 기본값입니다.

-D, --save-dev : 패키지가 devDependencies에 나타납니다.

-O, --save-optional : 패키지가 optionalDependencies에 나타납니다.

--no-save : 종속성 저장을 방지합니다.

위의 옵션 중 하나를 사용하여 package.json에 대한 종속성을 저장할 때 두 개의 추가 선택적 플래그가 있습니다.

-E, --save-exact : 저장된 종속성은 npm의 기본 semver 범위 연산자를 사용하는 대신 정확한 버전으로 구성됩니다.

-B, --save-bundle : 저장된 종속성도 bundleDependencies 목록에 추가됩니다.


업데이트 된 답변에 대한 감사는 현재의 상황을 커버하는
DrCord

그것은 나의 오랜 의심을 분명히 해주었다. 감사합니다
Alok Ranjan 19
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.