2017-12-14 32 views
1

커스텀 빌드 버전 관리 형식에 따라 내 각진 응용 프로그램의 package.json을 수정해야합니다. 버전에서 semver를 따르는 것이 필수적이며 사용자 정의 버전 형식을 사용하면 각도 응용 프로그램에서 오류가 발생할 수있는 시나리오가 있습니다.package.json의 버전이 항상 semver를 따라야합니까?

+0

'npm install'은 커스텀 버전 포맷과 잘 맞습니다. – mlsngh

답변

1

아니요, 의무 사항은 아니지만 더 새로운 호환 코드를 제공하므로 수행하고 싶습니다.

주 버전 번호를 변경하지 않는 한 오류가 없어야합니다.

고객 버전 형식 사용에 대해 언급 했으므로 문제가 없습니다.

모든 모듈이 시맨틱 버전 관리를 따르는 것은 아닙니다. 모듈은 세 부분으로 된 버전 번호 을 사용할 수 있지만 원하는대로 증가시킬 수 있습니다. 가장 안전한 방법은

그러나

이의 당신이 당신의 의존성으로 물결표 (~)와 라이브러리의 버전 1.3.4을 사용하고 있다고 가정 해 봅시다 캐치에게있어 모듈 문서를 확인하는 것입니다. 도서관은 잘 관리되고 신속하게 발전합니다. 오늘 최신 버전은 실제로 1.5.1입니다. 그런 다음 모든 버전에 영향을 미치는 중요 업무용 버그가 발견됩니다. 이 버그는 적절한 대우를받으며 1.5.2 버전에서 곧 수정 될 것입니다. 이제 당신의 버전에 맞는 버그 수정 패치 릴리즈 1.3.5가 없을 것이며 그 버그 수정을 얻지 못할 것입니다.

+0

우수 기사 https://bytearcher.com/articles/semver-explained-why-theres-a-caret-in-my-package-json/ –

+0

물건을 재현하려면 정확한 버전으로 버전 번호 범위를 대체해야합니다. 이 기능을 향상 시키려면 : 직접 package.json에 정확한 버전을 지정하더라도 종속성 자체가 일반적으로 사양이 약하기 때문에 재현 가능한 빌드를 의미하지는 않습니다. 탈자 부호. 이 경우 새로 설치하면 의존성의 종속성으로 최신 버전이 선택되며 이는 여전히 문제를 일으킬 수 있습니다. –

+0

인용 된 npm-shrinkwrap은 종속성 트리를 반복하고 최상위 npm-shrinkwrap.json의 JSON 트리에서 정확한 버전을 지정함으로써 해결합니다. 즉, node_modules 디렉토리의 package.json 파일을 수정하지 않습니다. 새로운 코드가 동일한 패치 버전 번호로 도착할 수 있기 때문에 이것은 여전히 ​​100 % 재현성을 보장하지 않습니다. https : //www.npmjs.com/packa ...와 같은 도구가 더 나은 보증을 제공하기 위해 존재하거나 의존성에 대해 자체 소스 제어를 가질 수 있습니다. –