--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.