[npm] –save 플래그는 npm install로 무엇을합니까?

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

npm install <package_name>

또는

npm install <package_name> --save

또는

npm install <package_name> --save-dev

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



답변

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 에서 자세한 내용을 읽을 수 있습니다 .


답변

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


답변

--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 목록에 추가됩니다.


답변