바우어(및 npm) 버전 구문은 무엇입니까?
Bower를 사용하면 다음 구문을 사용하여 패키지에 대한 버전 요구 사항을 지정할 수 있습니다.
"dependencies": {
"<name>": "<version>",
},
그러나 나는 무엇을 사용할 구문인지 찾을 수 없었습니다.<version>
할 수 : 버을다같지수정있다습니할.
- 버큰다보전이 있는 특정 보다 큼
">1.0.0"
- 버전이상:
">=1.0.0"
- 일부 또는일부범위:
"1.0.0 - 2.0.0"
.
tilde를 버전 : 또한 타일포 있구것 알있다다습고니도는문이전버통공를드함는하▁i▁cont다니▁syntax있습▁tilde▁knowaining▁version▁the▁common▁is."~1.0.0"
하지만 나는 그것이 무엇을 의미하는지 그리고 그것이 같은지 확신할 수 없습니다."=1.0.0"
.
또한 다음과 같이 연속되지 않은 버전을 여러 개 지정할 수 있는지 여부도 궁금합니다.1.0.3
+ 음보 보다 큰 1.5.0
기타...
간단히 말해서, Bower 버전 번호(및 NPM)에 대한 구문은 SemVer라고 하며, 이는 'SemVering'의 줄임말입니다.Bower 및 NPM에서 사용되는 SemVer의 자세한 구문에 대한 문서는 Node/npm 내의 Semverparser에 대한 API에서 찾을 수 있습니다.기본 사양에 대해 자세히 알아볼 수 있습니다(설명하지 않음).~
또는 기타 구문 세부 정보)를 참조하십시오. semver.org .
여러분이 가지고 놀 수 있는 매우 편리한 시각적 셈버 계산기가 있어서 이 모든 것을 더 쉽게 더듬고 테스트할 수 있습니다.
SemVer는 단순한 구문이 아닙니다!그것은 API를 게시하는 올바른 방법에 대해 꽤 흥미로운 말들을 가지고 있는데, 이것은 구문이 무엇을 의미하는지 이해하는 데 도움이 될 것입니다.결정적으로:
공용 API를 식별하면 해당 API에 대한 변경 사항을 버전 번호에 대한 특정 증분으로 전달합니다.X.Y.Z(Major)의 버전 형식을 고려합니다.마이너.패치).API에 영향을 미치지 않는 버그 수정은 패치 버전을 증가시키고, 하위 호환 API 추가/변경은 하위 버전을 증가시키며, 하위 호환 API 변경은 하위 버전을 증가시킵니다.
그서래, 당의구인질문에 대한 구체적인 입니다.~
그 소령과 관련이 있습니다.Minor 스키마. ( 연산자 Minor도 입니다.)Patch 스키마. (관련 캐럿 연산자도 마찬가지입니다.)^
.) 를 사용할 수 있습니다.~
다음 중 하나를 수락할 수 있는 버전 범위를 좁힙니다.
- 동일한 부 버전에 대한 후속 패치 레벨 변경("API에 영향을 미치지 않는 버그 수정") 또는 다음과 같은 작업을 수행합니다.
- 동일한 메이저 버전에 대한 후속 마이너 레벨 변경("역호환 가능한 API 추가/변경")
예를 들어, 1.2.x 트리에서 1.2.0부터 시작하지만 1.3.0 미만의 패치 수준 변경을 수행할 것임을 나타내려면 다음을 사용할 수 있습니다.
"angular": "~1.2"
or:
"angular": "~1.2.0"
이렇게 하면 다음과 같은 결과를 얻을 수 있습니다..x
구문:
"angular": "1.2.x"
하지만, 당신은 타일을 사용할 수 있습니다.~
구문을 더욱 구체적으로 설명합니다. 1.2.4에서 시작하지만 1.3.0보다 작은 패치 수준의 변경사항만 수락할 경우 다음을 사용할 수 있습니다.
"angular": "~1.2.4"
왼쪽으로 이동, 주 버전으로 이동, 만약 당신이...
"angular": "~1"
그것은 ...과 같습니다.
"angular": "1.x"
or:
"angular": "^1.0.0"
...1.0.0 이상 2.0 미만의 마이너 또는 패치 레벨 변경 사항과 일치합니다.
위의 마지막 변형을 '카렛 범위'라고 합니다.그 캐럿은 끔찍하게 많이 닮았습니다.>
따라서 "1.0.0보다 큰 모든 버전"을 의미한다고 생각하는 것은 용서받을 수 있습니다. (저는 확실히 그것에 대해 실수했습니다.)안 돼요!
캐럿 범위는 기본적으로 왼쪽에서 가장 중요한 숫자(일반적으로 주 버전)에만 관심이 있으며 왼쪽에서 가장 중요한 숫자에 영향을 미치지 않는 사소한 또는 패치 수준의 변경을 허용한다고 말하는 데 사용됩니다.그러나 주 버전을 지정하는 타일 범위와 달리 캐럿 범위를 사용하면 정확한 보조/패치 시작점을 지정할 수 있습니다.그래서 지금은 동안에.^1.0.0 === ~1
같캐 범위럿과 같은 ^1.2.3
사항이 하겠다고 말할 수 .>=1.2.3 && <2.0.0
틸트 레인지로는 할 수 없습니다.
가까이서 보면 처음에는 모든 것이 혼란스러워 보입니다.하지만 잠시 축소하고 이런 식으로 생각해 보세요. 캐럿을 사용하면 왼쪽에 있는 중요한 숫자에 대해 가장 관심이 있다고 말할 수 있습니다. 타일을 사용하면 오른쪽 끝에 있는 숫자가 가장 중요하다고 말할 수 있습니다.나머지는 상세합니다.
사람들이 단순한 것보다 훨씬 더 많이 사용하는 이유를 설명하는 것은 타일과 캐럿의 표현력입니다..x
구문: 단순히 더 많은 작업을 수행할 수 있습니다.그래서 어디서든 자주 사용되는 타일을 볼 수 있습니다..x
를 들어, 자체 패키지를 하십시오.예를 들어, npm 자체: 자체 패키지를 참조하십시오.json 파일에는 많은 종속성이 포함되어 있습니다.~2.4.0
형이아가 2.4.x
사용할 수 있는 형식입니다.고수함으로써~
구문은 허용 가능한 시작 패치 번호에 관계없이 70개 이상의 버전 종속성 목록에서 일관됩니다.
어쨌든, SemVer에는 아직 더 많은 것이 있지만, 여기서 모든 것을 자세히 설명하려고 하지는 않겠습니다.노드 semver 패키지의 readme에서 확인하십시오.그리고 SemVer가 어떻게 작동하는지 연습하고 머리를 굴리는 동안 시맨틱 버전 계산기를 사용해야 합니다.
RE: 연속되지 않은 버전 번호: OP의 마지막 질문은 연속되지 않은 버전 번호/범위를 지정하는 것입니다(제가 공정하게 편집했다면).예, 일반적인 이중 파이프 "또는" 연산자를 사용하여 이 작업을 수행할 수 있습니다.||
이와 같은 경우:
"angular": "1.2 <= 1.2.9 || >2.0.0"
semver를 기준으로 사용할 수 있습니다.
X. - C 이범위 X.Y.Z - A.B.다
1.2.3-2.3.4
>=1.2.3 <=2.3.4를 나타냄X-범위
1.2.x 1.X 1.2.*
틸데 산맥
~1.2.3 ~1.2
패치 수준 변경 또는 사소한 버전 변경을 허용함을 나타냅니다.캐럿 범위 ^1.2.3 ^0.2.5 ^0.0.4
[major, minor, patch] 튜플에서 가장 왼쪽에 0이 아닌 숫자를 수정하지 않는 변경을 허용
^1.2.x
> < (즉, >=1.2.0 < 2.0.0)^0.0.x
, >0 <, >=0.0 <0.1.0)을 의미합니다.^0.0
, >0 <, >=0.0 <0.1.0)을 의미합니다.
Bower는 semver 구문을 사용하지만 다음은 몇 가지 간단한 예입니다.
특정 버전을 설치할 수 있습니다.
$ bower install jquery#1.11.1
~를 사용하여 '이것으로 시작하는 모든 버전'을 지정할 수 있습니다.
$ bower install jquery#~1.11
여러 버전 요구 사항을 함께 지정할 수 있습니다.
$ bower install "jquery#<2.0 >1.10"
은 또한 있다니습수도를 할 수 .latest
사용 가능한 최신 버전을 설치하는 키워드:
"dependencies": {
"fontawesome": "latest"
}
번호, 만약패번없다면가가 없는 ,~
추가하는 것과 같습니다..x
타일이 아닌 버전으로.번호인 패치번있면으가 있으면,~
>= 지정된 패치 번호를 모두 허용합니다.
~1 := 1.x
~1.2 := 1.2.x
~1.2.3 := (>=1.2.3 <1.3.0)
승인된 답변에 대해 설명할 만한 포인트가 부족하지만 일부 타일 정보가 연결된 semver 문서와 충돌합니다."angular": "~1.2"
1.3, 1.4, 1.4.9와 일치하지 않습니다.또한."angular": "~1"
그리고."angular": "~1.0"
동등하지 않습니다.이것은 npm semver 계산기로 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/19030170/what-is-the-bower-and-npm-version-syntax
'programing' 카테고리의 다른 글
새 GUI를 만들 때 WPF가 Windows Forms보다 선호됩니까? (0) | 2023.05.21 |
---|---|
node_modules를 삭제하는 방법 - Windows에서 Deep Nested Folder (0) | 2023.05.21 |
딕트 목록에서 공통 키의 최소값/최대 값을 찾는 방법은 무엇입니까? (0) | 2023.05.21 |
Git에서 원격으로 분기 이름 바꾸기 (0) | 2023.05.16 |
Bash에서 파일이 비어 있는지 확인하는 방법은 무엇입니까? (0) | 2023.05.16 |