npm 설치는 devDependencies를 설치하지 않습니다


256

어떤 이유로 든 Windows에서 devDependencies를npm install 설치하지 않습니다 . AFAIK해야합니다. devDependencies 가 실행 되면 설치됩니다. devDependencies 도 설치하지 않는 이유를 이해 하지 못하지만 종속성 만 설치합니다. 이유가 무엇입니까? 어떻게 고칠 수 있습니까?npm install --dev npm install

아마 내 package.json에 문제가 있습니까? 도움이 될 수 있으면 아래에 나열되어 있습니다.

{
  "name": "try-brunch",
  "version": "0.1.0",
  "private": "true",
  "devDependencies": {
    "brunch": "^2.0.4",
    "cssnano-brunch": "^1.1.5",
    "javascript-brunch": "^1.8.0",
    "sass-brunch": "^1.9.2",
    "uglify-js-brunch": "^1.7.8"
  },
  "dependencies": {
    "jquery": "^2.1.4"
  }
}

5
수정이 필요한 이유는 무엇 입니까? 기본값이어야합니다! devDependencies말 그대로 모듈 개발자들의 의존성 입니다 . 나는 우리 대부분이 npm install그것을 개발하기보다는 그것을 사용 하기 위해 모듈을 걸었다 .
— Константин Ван

앱을 작성하고 로거 또는 웹팩 플러그인이 필요하다고 가정하십시오. 그것들은 devdeps입니다. 그것들을 설치해야합니다. npm은 경우에 따라 설치하지 않습니다.
— Tristan Tzara

1
즉, 패키지 (응용 프로그램) devDependencies를 작성할 때만 설치 가 필요합니다 . 그것을 사용할 필요가 없습니다 devDependencies. 따라서 추가 플래그를 설치 하는 것이 합리적입니다 devDependencies. 경우 npm install설치 devDependencies 기본적으로 는 사용자 뿐만 아니라 중복 패키지를 얻을 것입니다.
— Константин Ван

문서화 된 동작은 npm i내 폴더에서 할 때 py를 잡고 package.jsondeps와 devdeps를 모두 설치한다는 것입니다. 이것은 작동하는 방식이며 의미가 있습니다 (예 : 웹팩 플러그인을 포함하여 필요한 모든 것을 기대 npm i한 후에 할 때 git clone). 이 질문은 실제 동작이 의도 한 것과 다른 경우의 버그를 해결합니다. pls는 docs-docs.npmjs.com/cli/install을 살펴 보십시오 . devdeps를 설치하지 않는 플래그가 있지만 기본 동작은 설치하는 것입니다. 이는 완벽하게 이해되며 모두가 기대하는 것입니다.
— Tristan Tzara

내가 당길 때마다 webpack 플러그인 또는 typescript type defs 또는 다른 devdeps를 설치하기 위해 다른 명령을 실행해야한다는 확실한 이유가 없습니다. npm i 의도적이고 제정신이며 문서화 된 행동 인 부트 스트랩을 사용해야합니다.
— 따라서이

답변:


305

설치를 위해 NPM 문서를 확인하십시오.

으로 --production합니다 (NODE_ENV 환경 변수 생산에 설정된 경우 또는) 플래그는 NPM devDependencies 나열 모듈을 설치하지 않을 것이다. "

--only={prod[uction]|dev[elopment]}인수 중 하나 만 devDependencies 또는 유일한 비 devDependencies에 관계없이 NODE_ENV의 설치되는 원인이됩니다. "

당신이 시도 했습니까

npm install --only=dev

package.json 이 올바르지 않을까 걱정이되는 경우 가장 좋은 방법입니다. 새 폴더를 만들고 다음을 실행하십시오.

npm init --yes

그때:

npm install --save-dev brunch@^2.0.4
npm install --save-dev cssnano-brunch@^1.1.5
npm install --save-dev javascript-brunch@^1.8.0
npm install --save-dev sass-brunch@^1.9.2
npm install --save-dev uglify-js-brunch@^1.7.8
npm install jquery@^2.1.4 --save

그리고 당신은 잘 가야합니다! 그렇지 않으면 다른 옵션을 계속 게시합니다.

npm 구성을 확인하십시오.

npm config list

npm은 명령 줄, 환경 변수 및 npmrc 파일에서 구성 설정을 가져옵니다. 따라서 환경 변수와 npmrc 파일을 확인 하십시오.

여전히 실패?

파일 시스템의 다른 곳에 새 폴더를 만드십시오. 즉. 동일한 폴더 계층 구조가 아닙니다. 예를 들어, C : \ myNewFolder-기본 C에 가까울수록 더 좋습니다.

그런 다음 다음을 실행하십시오.

npm init --yes

이제 다음을 실행하십시오.

npm install underscore --save

그리고 마지막으로:

npm install mocha --save-dev

모든 것이 예상대로 작동합니까?

내가하려는 것은 문제가 전역인지 또는 이전 폴더와 종속성에 대한 로컬인지 이해하는 것입니다.


트리스탄-이것이 귀하의 상황에 도움이됩니까? 답변을 올바른 것으로 표시하거나 위의 시도 결과를 알려주시겠습니까?
— arcseldon

2
npm install --only = dev는 devdeps를 설치하지만 deps와 devdeps를 동시에 설치하고 싶습니다. package.json은 다시 작성해도 아무런 변화가 없으므로 괜찮습니다. NODE_ENV가 전 세계적으로 기본값으로, 로컬로 프로젝트 값으로 존재한다는 것이 맞습니까? 어디에서 확인하고 (내가 봤는데 내가 어떤 시스템 변수 NODE_ENV이없는) 창에이 값을 변경할 수 있습니다
— 트리스탕 차라

@TristanTzara-요즘 MAC에서 거의 독점적으로 일합니다. 그러나 며칠 전의 추억 (NT와 XP에서는 몇 년 전)에서-명령 프롬프트 창에 "set"과 같은 것을 입력 할 수 있습니까? 그렇지 않으면 시스템 등록 정보-> 고급-> 환경 변수와 같은 항목으로 이동하여 항목을 확인하십시오. . NODE_ENV가있는 "키"를 찾고 있습니다. 이제 Windows 옵션을 Google에서 사용하지만 도움이 될 수 있도록 게시했습니다.
— arcseldon

여기에 링크 -winaero.com/blog/…
— arcseldon

@TristanTzara-알기에 좋습니다. 한 가지 생각, 작동하지 않는 디렉토리 위의 모든 상위 디렉토리를 확인하십시오. 기존 node_modules 폴더를 찾으십시오 .npm은 종속성을 해결하려고 할 때 위쪽으로 검색하므로 디렉토리 트리에서 기존에 설치된 모듈을 선택하여 하위 폴더에 설치하지 않는 것이 이상 할 수 있습니다. . 일반적인 장소는 홈 디렉토리 바로 아래에 있습니다 .. 행운을 빌어 서 감사합니다. 제 답변 : D
— arcseldon

85

npm 구성 프로덕션 값이 true로 설정되어 있는지 확인하십시오. 이 값이 true이면 dev 종속성을 건너 뜁니다.

운영 npm config get production

설정하려면 : npm config set -g production false


npm 5.x와 npm 6.x 사이에 값이 설정되어 있지 않으면 기본값이 true아닌 것이 아닌지 궁금합니다 false.
— James Perih 2016 년

38

env 변수 NODE_ENV가 'production'으로 설정되어 있지 않은지 확인하십시오 .

그렇게하면, --dev플래그 없이 dev 의존성이 설치되지 않을 것입니다


나는 내 시스템 변수를 살펴 보았고 거기에는 이것도 없습니다. 어쩌면 내가 잘못된 곳을 보았 을까?
— Tristan Tzara

13
그주의 npm install --dev를 설치한다 devDependencies를 재귀 . 이것은 거의 당신이 원하는 것이 아니며 실제로는 더 이상 사용되지 않습니다 .
— Wonko

감사합니다. 이것이 일반 npm 설치에 영향을 줄지 몰랐지만 논리입니다. :)
— Lothre1

6
의 사용 --dev옵션이 지원되지 않습니다. 사용 --only=dev대신에
— Sarath AK로

16

나는 package-lock.jsonpackage.json의 이전 버전의 파일을 가지고 있었고 그것을 삭제 한 다음 모든 것이 올바르게 설치되었습니다.


빙고! 내 문제가 해결되었습니다. 우리가 이것을 repo에 위탁했을 것 같습니다.
— randomor

9

나는 비슷한 문제가 있었다. npm install --only=dev작동하지 않았다 npm rebuild. 궁극적으로 삭제 node_modules하고 다시 package-lock.json실행 npm install해야했습니다. 그것은 나를 위해 그것을 고쳤다.


7

다음과 같이 개발을 위해서만 설치 종속성에 짧은 방법을 사용할 수 있습니다.

npm i -D <dependencies-names>

가장 좋은 답변입니다. 최고야
— wwwwwwwwwwww

6

당신 package.json이 유효한지 확인하십시오 ...

다음과 같은 오류가 발생했습니다 ...

npm WARN Invalid name: "blah blah blah"

그와 비슷하게 devDependencies설치되지 않았습니다.

참고로 package.json"이름"을 blah-blah-blah수정 하여 수정했습니다.


0

NODE_ENV=productionDocker를 빌드 하는 동안 설정했기 때문에 동일한 문제가 있습니다. 그런 다음 하나 더 추가 npm install --only=dev합니다. 모든 것이 잘 작동합니다. TypeSciprt 모듈을 빌드하려면 devDependencies가 필요합니다.

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