[node.js] Node.js (package.json) 용 “devDependencies”NPM 모듈 설치를 어떻게 방지합니까?
내 package.json 파일 (단축 버전)에 이것을 가지고 있습니다 :
{
"name": "a-module",
"version": "0.0.1",
"dependencies": {
"coffee-script": ">= 1.1.3"
},
"devDependencies": {
"stylus": ">= 0.17.0"
}
}
Mac 10.6.8에서 NPM 버전 1.1.1을 사용하고 있습니다.
프로젝트 루트에서 다음 명령을 실행하면 dependencies
and가 모두 설치됩니다 devDependencies
.
npm install
이 명령이 다음을 설치했다는 인상을 받았습니다 devDependencies
.
npm install --dev
어떻게 그렇게해야합니까 npm install
에만 설치 dependencies
(생산 환경 만 모듈을 얻을 수 있도록) 동안 같은 npm install --dev
설치 횟수 모두 dependencies
와 devDependencies
?
답변
이 npm install
명령은 개발 환경 (디폴트)의 패키지 디렉토리 내에서 실행될 때 devDependencies
서로 를 설치합니다 dependencies
.
사용 npm install --only=prod
(또는 --only=production
) 설치 뿐만 dependencies
아닌 devDependencies,
관계없이 값의 NODE_ENV
환경 변수.
출처 : npm docs
참고 : NPM (2015년 8월 13일)의 전 V3.3.0은 옵션이 불렀다 --production
즉, npm install --production
.
답변
나도 그 문제에 부딪쳤다! npm 설치는 다소 혼란스럽고 웹 게시물은 명시적인 ‘개발’설치 모드가있는 것처럼 -d /-dev 플래그를 계속 가져옵니다.
-
npm install
” 종속성 “및 ” devDependencies “를 모두 설치합니다. -
npm install --production
” 종속성 ” 만 설치합니다 -
npm install --dev
” devDependencies ” 만 설치합니다
답변
새로운 옵션은 다음과 같습니다.
npm install --only=prod
devDependencies 만 설치하려는 경우 :
npm install --only=dev
답변
2016 년 에이 POST를 읽으면 다음을 사용하여 원하는 것을 달성하십시오
--only={prod[uction]|dev[elopment]}
인수는 NODE_ENV에 관계없이 devDependencies 또는 non-devDependencies 만 설치합니다.
답변
모든 종속성을 이미 설치했고 NPM에서 프로덕션 패키지를 다시 다운로드하지 않으려면 다음을 입력하면됩니다.
npm prune --production
이렇게하면 node_modules
폴더 에서 개발자 종속성이 제거되므로 다음 과 같은 2 단계 프로세스를 자동화하려는 경우 유용합니다
- 개발자 의존성을 사용하여 프로젝트를 Webpack
- 프로덕션 모듈 만 사용하여 Docker 이미지 빌드
npm prune
중간에 실행 하면 모든 것을 다시 설치하지 않아도됩니다!
답변
“npm install”을 사용하면 모듈이 “devDependencies”인지 “dependencies”인지에 관계없이 응용 프로그램 전체에로드되어 사용 가능합니다. 이 아이디어의 요약 : package.json이 종속성 (모든 유형)으로 정의하는 모든 것이 node_modules에 설치됩니다.
dependencies / devDependencies / optionalDependencies의 차이점은이 코드를 설치하기 위해 npm없이 코드 소비자가 할 수있는 것입니다.
문서 당 : https://npmjs.org/doc/json.html …
누군가 자신의 프로그램에서 모듈을 다운로드하여 사용할 계획이라면 아마도 사용하는 외부 테스트 또는 문서 프레임 워크를 다운로드하거나 빌드하지 않아도됩니다.
이 경우 이러한 추가 항목을 devDependencies 해시에 나열하는 것이 가장 좋습니다.
–dev configuration 플래그가 설정 될 때마다 설치됩니다. 이 플래그는 npm 링크를 수행하거나 패키지 루트에서 npm을 설치할 때 자동으로 설정되며 다른 npm 구성 매개 변수와 같이 관리 할 수 있습니다. 주제에 대한 자세한 내용은 config (1)를 참조하십시오.
그러나이 질문을 해결하기 위해 npm을 사용하여 “종속성”만 설치하려는 경우 다음 명령은 다음과 같습니다.
npm install --production
이것은이 필터를 추가 한 Git 커밋 (이 기능을 제공하기 위해 아래에 나열된 다른 필터와 함께)을 보면 확인할 수 있습니다.
npm에서 사용할 수있는 대체 필터 :
--save => updates dependencies entries in the {{{json}}} file
--force => force fetching remote entries if they exist on disk
--force-latest => force latest version on conflict
--production => do NOT install project devDependencies
--no-color => do not print colors
@dmarr는 npm install –production을 사용해보십시오.
답변
npm은 패키지 내부에서 설치할 때 ( package.json
현재 디렉토리에있는 경우) dev 종속성을 설치 합니다. 다른 위치 (npm 레지스트리, git repo, 파일 시스템의 다른 위치)에서 온 경우 종속성 만 설치합니다.