npm 설치를위한 --save 옵션은 무엇입니까?


2035

명령이있는 튜토리얼을 보았습니다.

npm install --save

--save옵션은 무엇을 의미합니까?

Google에서 답변을 찾을 수 없습니다.


32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie

7
바로 가기 -S와 -D를 사용할 수 있습니다. -S는 --save이고 -D는 '--save-dev입니다. --save (또는 simple -S) : 패키지가 종속성에 나타납니다. --save-dev (또는 simple -D) : 패키지가 devDependencies에 나타납니다.
Gil Epshtain

5
@WiredPrairie 감사 npm install (--help | -h | -help ..)합니다.
juliangonzalez

2
thx @Dmitri, 나는 같은 문제가있었습니다. 도구에 대한 MAN 페이지에 NPM 추가
Erdinc Ay

67
최소한 도구 자체의 경고와 함께 사용 중단 하지 않고 문서 및 도움말 페이지에서이 옵션에 대한 언급 만 제거하기로 한 결정의 근거를 이해하지 못합니다 . 한편 초보자는 수많은 튜토리얼을 통해 노출됩니다. 그런 다음 그들은 무엇을하는지 알아 내고 문서를 읽는 데 20 분을 소비하여 결국 스택 오버 플로우에서 npm 기록을 읽습니다. 이상하게도 이런 종류의 엄청난 시간 낭비 (질문의 인기가 어떤 징후 일 경우)를 막는 것은 문서화의 목적 중 하나입니다.
Michael Ekoka

답변:


2476

npm 5 업데이트 :

현재 NPM 5.0.0 소위, 설치된 모듈은 기본적으로 종속성으로 추가되지 않습니다 --save옵션이 더 이상 필요합니다. 다른 저장 옵션은 여전히 ​​존재하며에 대한 설명서 에 나와 있습니다 npm install.

원래 답변 :

버전 5 이전에 NPM node_modules은 기본적으로 패키지를 설치했습니다 . 앱 / 모듈에 대한 종속성을 설치하려고 할 때는 먼저이를 설치 한 다음 (적절한 버전 번호와 함께)의 dependencies섹션에 추가해야합니다 package.json.

--save옵션을 사용하면 NPM에 자동으로 dependencies섹션 내에 패키지를 포함하도록 지시 package.json하여 추가 단계를 절약 할 수 있습니다.

또한, 보완 옵션이 있습니다 --save-dev--save-optional아래에 패키지를 저장 devDependencies하고 optionalDependencies각각. grunt테스트 라이브러리 와 같은 개발 전용 패키지를 설치할 때 유용 합니다.


140
진지하게, 이것은 어디에나 문서화되어 있습니까? Google이나 npm도움말 에서 찾을 수 없습니다 .
Christian Ternus

111
이것에 대한 문서 npm install --help가 사용 되었을 때 나타났습니다 .
Mark Stosberg

11
@jimsmith : npm 5.0부터는 기본값입니다.
voithos 2018 년

3
NPM 5의 "npm update"는 기본적으로 package.json을 수정합니까?
Igor Okorokov

6
@voithos 나를 위해 NPM 5는 package.json의 패키지 버전을 업데이트합니다. 이를 피하기 위해 'npm update --no-save'를 실행해야합니다.
Igor Okorokov

219

종속성에 패키지를 추가하려면

npm install my_dep --save

또는

npm install my_dep -S

또는

npm i my_dep -S

devDependencies에 패키지를 추가하려면

npm install my_test_framework --save-dev

또는

npm install my_test_framework -D

또는

npm i my_test_framework -D

package.json 여기에 이미지 설명을 입력하십시오


30
-S -D대문자 여야하는 것처럼 단축키 버전을 사용하는 데주의하십시오 . 나는 항상이 실수를하고 npm은 불평하거나 package.json에 추가하지 않습니다 :
json

7
-s(소문자)가 --silent옵션이며, -d유효한 바로 가기 인 로그 레벨 정보를위한 것이기 때문에 불평하지 않습니다 .
tanvi

131

파일이 없으면 아무 것도하지 않습니다 package.json. 실행 npm init하여 시작 하여 하나를 만듭니다. 그런 다음 npm install --save또는으로 전화 npm install --save-dev하거나 npm install --save-optional를 업데이트 package.json하여 종속성을 나열하십시오.


37
방금 소급 적으로 작동한다는 것을 알았습니다. npm install --save-dev먼저 npm init을 실행 하면 package.json이 채워집니다.
Jacob Wang

20

NPM Doc 에 따르면

여기에 이미지 설명을 입력하십시오

따라서를 실행 npm install package_name하면 패키지 종속성이 package.json에 자동으로 추가되어야합니다.


1
--no-save는 npm <5와 같은 기능을 원할 때 사용하는 것 같습니다
Abhiroj Panwar

필자 npm config ls -l는 기본적으로 save-xxx 옵션이 모두 false이고 save 만 true임을 보여줍니다.
ROROROOROROR

--save-xxxxxx와 같은 none 옵션을 설정하면 npm이 오류를 발생시키지 않는 것처럼 보입니다. 그냥 무시하고 기본 동작 인 --save-prod가 영향을 미칩니다. 아마도 --save는 오래된 npm 버전에서 나온 것일 수 있습니다.
레온

13

당신은 또한 사용할 수 있습니다 -S, -D또는 -P앱 의존성, dev에 의존하거나 자극 의존성에 패키지를 저장하는 동일있다. 아래에 더 많은 NPM 바로 가기가 있습니다.

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

이 바로 가기 목록은 다음 명령을 실행하여 얻을 수 있습니다.

$ npm help 7 config

7

NPM 5, 그것은 사용하는 것이 더 유리하다 --save-prod(또는 -P이상) --save로 명시되어 있지만, 같은 일을하고 설치 NPM . 지금까지 --save제공된 경우 여전히 작동합니다.


이것은 우리에게 모든 눈에 띄지 않는 변화, 모순 및 스레드 납치를 저장하기 위해 상단으로 이동해야합니다. 따라서 CRUD를 피하고 작업에 착수 할 수 있도록 유효한 URL로 간결한 답변을 장려해야합니다. (Quora는 '이 답변은 관련이 있습니까?'등이 있으며 이전에도 SO에 제안한 적이 있습니다.) \ n 공식 노드 doc에 오래된 (소멸 된) 옵션에 대한 언급이 없으며 대부분의 노드 참조는 pre -5.0, 머리를 스핀으로 보냅니다.
killjoy

6

npm 5부터 npm은 기본적으로 저장됩니다. npm을 이전 버전에서 작동했던 방식과 비슷한 방식 (자동 저장 없음)으로 작동하려면 config 옵션을 업데이트하여 아래와 같이 자동 저장을 활성화 할 수 있습니다.

npm config set save false

현재 설정을 얻으려면 다음 명령을 실행할 수 있습니다.

npm config get save

출처 : https://blog.pusher.com/what-you-need-know-npm-5/


6

npm install package_x --save

주어진 패키지 (package_x)는 의존성 내부 package.json에 저장됩니다. 추가하면

npm install <<package_x>> --save-dev

그러면 devDependencies 안에 저장됩니다 .


12
다른 답변에서 아직 다루지 않은 답변은 무엇입니까?
Pedro A

@Pedro A-내 의심은 그 사람이 방금 읽은 것을 다시 쓴다는 것입니다. 그런 다음 친구들에게 투표를하도록합니다.
IAM_AL_X

3

package.json에 의존성을 추가하는 더 쉬운 (그리고 더 멋진) 방법은 명령 줄에서 수행하는 것입니다. npm install 명령에 원하는 방식에 따라 --save 또는 --save-dev로 플래그를 지정하십시오 그 의존성을 사용하십시오.


3

npm install --save또는 npm install --save-dev프로젝트에 패키지를 설치하는 동안이 두 옵션 중 하나를 선택하는 이유는 무엇입니까?

위의 답변 에서 파일 npm install --savedependency필드에 항목을 추가 pacakage.json하고에있는 다른 항목을 추가 dev-dependency합니다.

따라서 코드를 체크인 git하거나 코드를 보낼 때마다 항상 코드를 제공하거나 확인하지 않기 때문에 pacakge.json 파일에 설치 모듈을 입력 해야하는 이유가 궁금합니다.node-modules 크기가 크거나 사용할 수 . 이것을 피하기 위해 일반적인 장소에서 우리는 그렇게합니다.

그렇다면 다른 사람이 해당 프로젝트에 구체적으로 필요하거나 필요한 모든 모듈을 얻는 방법은 다음과 같습니다. from the package.json 를 실행하거나 개발하는 데 필요한 모든 패키지가 들어있는 파일입니다.

따라서 코드 we simply need to run the npm install명령 을 얻은 후 package.json 파일을 읽고 필요한 필수 패키지를 설치합니다.


2

npm i (패키지 이름) --save

Simplily, 위의 명령을 사용하면 package.json 파일에 패키지 이름을 쓸 필요가 없습니다. 다른 이름으로 프로덕션이나 설정을 할 때 필요할 때 필요한 버전과 이름 및 종속성을 자동으로 추가합니다.

npm 도움말 설치

위의 명령은 그림에서 더 많은 옵션과 올바른 def.를 찾는 데 도움이됩니다. 여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.