npm install grunt에서 -save-dev의 의미는 무엇입니까? --save-dev


277

방금 Grunt.js 사용을 시작했습니다 . 설정하기가 어렵고 package.json파일 을 만드는 시점에 있습니다.

학습서 에 따르면 package.json파일 을 작성하는 3 가지 방법이 있습니다 .

첫 번째는 npm install grunt --save-dev

그러나 무엇을 --save-dev의미합니까? 나는 시도했지만 헛된 것으로 끝납니다.


나는 대답을 찾을 수 있다고 생각합니다. gruntjs.com/getting-started - npmjs.org/doc/json.html#devDependencies
Vennsoh

튜토리얼 링크가 깨짐
SteveC

답변:


317

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

npm install docs 에 따르면 .

누군가 자신의 프로그램에서 모듈을 다운로드하여 사용할 계획이라면 아마도 사용하는 외부 테스트 또는 문서 프레임 워크를 다운로드하거나 빌드하지 않아도됩니다.

즉,를 실행 npm install하면 프로젝트의 devDependencies가 설치되지만 앱이 의존하는 패키지의 devDependencies는 설치되지 않습니다. 또한 앱을 종속성으로 사용하는 다른 앱은 devDependencies를 설치할 필요가 없습니다. 이러한 모듈은 앱을 개발할 때만 필요합니다 (예 : grunt, mocha 등).

package.json 문서 에 따르면

편집 : 무엇을 시각화하려고 시도하십시오 npm install.

  • 당신의 프로젝트
    • 의존성 설치
      • 의존성 설치
        • 의존성 설치
        • devDependency가 설치되지 않았습니다
      • devDependency가 설치되지 않았습니다
    • devDependency 설치
      • 의존성 설치
      • devDependency가 설치되지 않았습니다

2
기본적으로 dev 의존성으로 설치되지 않지만 어떻게 설치합니까? npm install --dev깃발?
StanleyZheng

4
@stanzheng 당신이 알아야 할 것이 무엇인지 잘 모르겠습니다. 프로젝트에 있고를 실행 npm install하면 프로젝트의 devDependencies도 설치됩니다. 종속성의 devDependencies를 설치하지 않으려 고합니다. npm 패키지로 개발하려면 git clone xxx해당 프로젝트를 실행 npm install하십시오.
Andreas Hultgren

3
"npm install을 실행할 때 앱의 종속성에 대한 devDependencies가 설치되지 않습니다"가 잘못되었습니다. package.json이 있고 npm 패키지와 함께 "devDependencies"만 포함하고 "npm install"을 입력하면 "devDependecies"가 설치됩니다.
핵심

6
이해하려고했지만 이해하지 못했습니다. 그런 다음 시각화를 이해하려고했지만 몰랐습니다. 각 글 머리 기호 항목은 무엇을 의미합니까? 폴더? 취소 선 항목의 의미는 무엇입니까? 존재하지 않는 디렉토리? 그것이 사실이라면, 당신은 어떻게 존재하지 않는 것을 완전히 나열 할 수 있습니까?
Rafael Eyng

8
명확히하기 위해 npm install프로젝트에서 실행 하면 package.json의 모든 devDependencies가 설치되지만 프로젝트를 새 npm 패키지로 패키지하여 게시하면 다른 사람이 npm install로 패키지를 설치할 때 devDependencies는 그들의 시스템에 설치. 맞습니까? @stanzheng하거나 dev에 종속 제외하고 package.json에 모든 것을 설치 --production를 설치 NPM 실행할 수 있습니다
rwilson04

99

package.json 파일에 표시 할 수있는 두 가지 유형의 패키지 종속성이 있습니다.

  1. 모듈 을 사용 하는 데 필요한 패키지 는 "종속성"속성 아래에 나열됩니다. npm을 사용하면 다음과 같은 방식으로 package.json 파일에 해당 종속성을 추가 할 수 있습니다.

    npm install --save packageName
  2. 모듈 개발에 필요한 패키지 는 "devDependencies"속성 아래에 나열되어 있습니다. 이러한 패키지는 다른 사용자가 모듈을 사용하는 데 필요하지 않지만 모듈 개발을 돕고 싶다면 이러한 패키지가 필요합니다. npm을 사용하면 다음과 같이 devDependencies를 package.json 파일에 추가 할 수 있습니다.

    npm install --save-dev packageName

35

Andreas의 답변에 추가하려면 다음을 사용하여 종속성 만 설치할 수 있습니다.

npm install --production

7

대한 NPM에서 문서 npm install <package-name> --savenpm install <package-name> --save-dev여기에서 찾을 수 있습니다 :

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

package.json파일은 개발 모듈에 대한 메타 데이터를 선언합니다. 앞에서 언급 한 두 명령 모두이 package.json파일을 수정 합니다. --save설치된 패키지 (이 경우 grunt)를 모듈의 종속성으로 선언합니다 . --save-dev모듈 개발에 대한 종속성으로 선언합니다.

자신에게 물어보십시오 : 설치된 패키지가 내 모듈을 사용하기 위해 필요합니까, 아니면 개발시에만 필요합니까?


6

"--save"매개 변수를 사용하면 package.json의 아래 # 1에 종속 항목이 포함됩니다. "--save-dev"매개 변수를 사용하면 package.json의 아래 # 2에 종속 항목이 포함됩니다.

#1. "종속성":이 패키지는 프로덕션 환경의 응용 프로그램에 필요합니다.

# 2. "devDependencies":이 패키지는 개발 및 테스트에만 필요합니다


5

나에게 첫 번째 대답은 약간 혼란스러워 보이므로 짧고 깨끗하게 만듭니다.

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

npm install <package_name> --no-save 종속성 저장을 방지합니다.

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

당신은 dcu에서 더 읽을 수 있습니다

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