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.