IT박스

@ types / *가`dependencies` 또는`devDependencies`로 들어가는지를 어떻게 결정합니까?

itboxs 2020. 8. 2. 17:52
반응형

@ types / *가`dependencies` 또는`devDependencies`로 들어가는지를 어떻게 결정합니까?


내 프로젝트에서 TypeScript 2를 사용합니다. js 라이브러리를 사용하고 싶지만 해당 라이브러리에 대한 입력을하고 싶습니다. 간단한 유형을 설치할 수 있습니다 npm install @types/some-library. 나는할지 확실하지 않다 --save또는 --save-dev그들. DefinetelyTyped GitHub 추가 정보조차도 두 버전을 언급하지만 설명하지는 않습니다. devDependencies개발에 유형이 필요하고 런타임에 사용되지 않기 때문에 @types가 있어야한다고 생각 하지만 @types는 여러 번 보았습니다 dependencies. 혼란 스러워요.

어떻게 유형 @ / *이로 전환 여부를 결정해야한다 dependenciesdevDependencies? 실제로 공식적인 지침이 있습니까?


devDependencies에 @ types / some-module 패키지가있는 패키지 "A"를 개발한다고 가정 해 봅시다. 어떤 이유로 @ types / some-module에서 유형을 내보내는 경우

import {SomeType} from 'some-module';
export default class APackageClass {
     constructor(private config: SomeType) {

     }
}

패키지 "A"의 devDependencies가 설치되어 있지 않기 때문에 현재 패키지 "A"의 Typescript 소비자는 SomeType이 무엇인지 추측 할 수 없습니다.

이 경우 @ types / * 패키지를 규칙적인 "종속성"과 함께 배치해야합니다. 다른 경우에는 "devDependencies"가 충분합니다.


번들을 생성하고 있습니까? 그렇다면 어디로 가는지 토론하는 데 너무 많은 시간을 소비하지 않는 것이 좋습니다. devDependencies그리고 dependencies당신은 다른 사람이 사용할 수있는 패키지를 게시하는 경우에만 의미이고, 당신이 쓸모없는 종속성을 스팸 싶지 않아요.

에 배치하십시오 devDependencies. 당신이 말했듯이 "개발에는 타입이 필요하고 런타임에는 사용되지 않습니다" .


Node.js 애플리케이션을 프로덕션에 배치하는 특별한 경우에는 애플리케이션을 실행하는 데 필요한 종속성 만 설치하려고합니다. ( npm install --production또는 npm ci --production또는로 yarn production.)이 경우 devDependencies설치가 부풀어 오르지 않도록 유형이에 있어야 합니다.

비고 : 나는 이것이 브래드 윌슨이 다른 답변에 대한 의견에서 언급 한 것을 알고 있습니다. 그러나이 점은 답이 될만한 가치가있는 것 같습니다.

참고 URL : https://stackoverflow.com/questions/45176661/how-do-i-decide-whether-types-goes-into-dependencies-or-devdependencies

반응형