한 기사에서 npm install -g와 npm install --save-dev 간의 관계에 대해 알아보세요.

이 기사는 Huawei Cloud Community "npm install -g와 npm install --save-dev 사이의 관계"( 작성자: SHQ5785) 에서 공유되었습니다 .

1. npm install 로컬 설치

  1. 설치 패키지를 ./node_modules(npm 명령이 실행되는 디렉터리) 아래에 놓습니다. node_modules 디렉터리가 없으면 현재 npm 명령이 실행되는 디렉터리에 node_modules 디렉터리가 생성됩니다.
  2. 로컬 설치 패키지는 require()를 통해 도입할 수 있습니다.

2. npm install -g 전역 설치

  1. /usr/local 또는 노드 설치 디렉터리에 설치 패키지를 배치합니다.
  2. 명령줄에서 직접 사용할 수 있습니다.

3. npm 설치 --저장

  1. 빌드 패키지는 node_modules 디렉터리에 설치됩니다.
  2. package.json의 종속성 속성 아래에 빌드가 추가됩니다.
  3. 나중에 npm install 명령을 실행하면 빌드가 node_modules 디렉터리에 자동으로 설치됩니다.
  4. 나중에 npm install --production을 실행하거나 NODE_ENV 변수 값이 프로덕션임을 표시하면 msbuild가 node_modules 디렉터리에 자동으로 설치됩니다.

4. npm install --save-dev

  1. msbuild 패키지는 node_modules 디렉터리에 설치됩니다.
  2. msbuild는 package.json의 devDependency 특성 아래에 추가됩니다.
  3. 나중에 npm install 명령을 실행하면 msbuild가 node_modules 디렉터리에 자동으로 설치됩니다.
  4. 나중에 npm install --production을 실행하거나 NODE_ENV 변수 값이 프로덕션임을 표시하면 msbuild가 node_modules 디렉터리에 자동으로 설치되지 않습니다.

5. package.json의 종속성과 devDependency의 차이점

  • 의존성:

애플리케이션이 정상적인 작동을 위해 의존하는 패키지입니다. 이러한 종류의 종속성이 가장 일반적입니다. 사용자는 npm install을 사용하여 패키지를 설치할 때 이러한 종속성을 자동으로 설치합니다.

  • dev종속성:

애플리케이션을 개발할 때 사용되는 툴킷입니다. 일반적 으로 webpack, ESLint 및 Mocha와 같은 일부 개발 , 테스트패키징 도구입니다. 애플리케이션의 정상적인 작동은 이러한 패키지에 의존하지 않으며 사용자는 npm install을 사용하여 패키지를 설치할 때 이러한 종속성을 설치하지 않습니다.

  • 피어종속성:

애플리케이션을 실행하기 위해 의존하는 호스트 패키지입니다 . 가장 일반적인 것은 다양한 jQuery 플러그인과 같은 플러그인 입니다 . 이러한 플러그인 자체에는 jQeury가 포함되어 있지 않으며 외부에서 제공되어야 합니다. 이 종속성은 사용자가 npm 1 또는 2를 사용할 때 자동으로 설치됩니다. npm 3은 이를 자동으로 설치하지 않으며 사용자에게 설치하라는 메시지를 표시합니다.

  • 번들종속성:

패키지를 게시할 때 패키지해야 하는 종속성은 거의 없는 것 같습니다.

  • 선택적종속성:

선택적 종속성. 이 종속성은 프로그램을 실행하는 데 필요하지 않지만 설치 후 이미지 디코딩 라이브러리와 같은 새로운 기능이 있을 수 있습니다. optionDependency를 설치하면 더 많은 형식이 지원됩니다.

그렇다면 package.json 파일에 있는 devDependency와 종속성 개체의 차이점은 무엇입니까?

devDependency의 플러그인(예: 다양한 로더, ​​babel 계열 버킷 및 다양한 webpack 플러그인 등)은 프로덕션 환경이 아닌 개발 환경에서만 사용되므로 종속성을 패키징할 필요가 없습니다. 프로덕션 환경으로 출시되므로 패키지해야 합니다.

 

화웨이 클라우드의 신기술에 대해 빨리 알아보고 팔로우하려면 클릭하세요~

 

"Qing Yu Nian 2"의 불법 복제된 리소스가 npm에 업로드되어 npmmirror가 unpkg 서비스를 중단하게 되었습니다. Zhou Hongyi: Google에 남은 시간이 많지 않습니다. time.sleep(6) 여기서는 어떤 역할을 합니까? 리누스는 "개사료 먹기"에 가장 적극적입니다! 새로운 iPad Pro는 12GB의 메모리 칩을 사용하지만 8GB의 메모리를 가지고 있다고 주장합니다. People's Daily Online은 사무용 소프트웨어의 마트료시카 스타일 충전을 검토합니다. "세트"를 적극적으로 해결해야만 Flutter 3.22 및 Dart 3.4 출시가 가능 합니다. 'ref/reactive'가 필요 없는 Vue3의 새로운 개발 패러다임, 'ref.value'가 필요 없음 MySQL 8.4 LTS 중국어 매뉴얼 출시: 데이터베이스 관리의 새로운 영역을 마스터하는 데 도움 Tongyi Qianwen GPT-4 수준 메인 모델 가격 인하 97% 증가, 1위안 200만 토큰
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4526289/blog/11183599