κΈ°λ₯ μ μμ²νκ±°λ λ²κ·Έλ₯Ό λ³΄κ³ νμκ² μ΅λκΉ?
λ²κ·Έ π π± Yarnμ λμΌν λ²μ μ§μ μλ₯Ό μ¬μ©νμ¬ NPMκ³Ό λ€λ₯Έ λ²μ μ μ νν©λλ€.
νμ¬ νλμ 무μμ λκΉ?
aes-decrypter
ν¨ν€μ§λ npmμ μμ΅λλ€: { latest: '1.0.3', beta: '1.0.0-0', next: '1.1.0' }
video.js
ν¨ν€μ§λ npmμ μμ΅λλ€: { latest: '5.11.9', next: '5.12.6', alpha: '5.9.0-2' }
videojs-contrib-hls
λ aes-decrypter@^1.0.3'
λ° video.js@^5.10.1
λ°λΌ λ€λ¦
λλ€.package.json
videojs-contrib-hls@^3.6.7
μ λ°λΌ λ€λ¦
λλ€.{
"name": "yarn-next-bug-test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"videojs-contrib-hls": "^3.6.7"
}
}
yarn
μ€μΉλκ³ yarn.lockμ μΆκ°λ ν¨ν€μ§λ λ€μκ³Ό κ°μ΅λλ€.
μμλλ λμμ 무μμ
λκΉ?
μ΄ λμΌν package.jsonμΌλ‘ NPMμ΄ μννλ μμ
:
node.js, μμ¬ λ° μ΄μ 체μ λ²μ μ μΈκΈνμμμ€.
node.js v7.0.0
μμ¬ v0.16.0 λ° v0.19.0-0(f0d875a67a06d8b2405be177d0c43820442d802bμ λ§μ€ν°)μ λ²κ·Έκ° μμ΅λλ€.
npm v3.10.9 λ° v4.0.2 λͺ¨λ μμν μμ
μ μνν©λλ€.
macOS μμλΌ 10.12.2 λ² ν(16C32f)
λλ κ°μ μΌμ λΆλͺμ³€λ€. μ΄κ²μ NpmResolve#findVersionInRegistryResponse
μμ μλͺ»λ κ² κ°μ΅λλ€. μ¬κΈ°μ range
λ μ μ΄ μ’
μμ±μ κ²½μ° dist-tags
μ ν€κ° μλλΌ λ¨μν semver λ²μμ΄κ³ config.resolveConstraint
λ λ¨μν λ°νλ©λλ€. κ°μ₯ λμ κ².
(μ¬ν΄ 곡격μ μ’μ μλ lernaμ λμ°νκ² λ§κ°μ§ μΉ΄λ리μ λ¦΄λ¦¬μ€ λ©μ»€λμ¦μ
λλ€. μ΄ λ©μ»€λμ¦μ 짧μ git commit ν΄μλ‘ λλλ semver μνν λ²μ μ μμ±ν©λλ€. μ€μ νλ‘κ·Έλλ¨Έλ νμ μλλ‘ κ³μ°νκ³ 'f'μμ μμνλ€κ³ μκ°ν©λλ€.)
typscript ν¨ν€μ§μλ μ΄ λ¬Έμ κ° μμ΅λλ€.
npm view typescript 'dist-tags'
λ€μ μΆλ ₯μ μ 곡ν©λλ€.
{ latest: '2.0.10',
next: '2.2.0-dev.20161129',
beta: '2.0.0',
rc: '2.1.1',
insiders: '2.0.6-insiders.20161017' }
npm install
μ€ννλ©΄ 2.0.10 λ²μ μ΄ μ€μΉλ©λλ€.
yarnμ μ€νν ν yarn.lockμ μ΄ νλͺ©μ΄ μμ΅λλ€.
typescript@^2.0.9:
version "2.1.1"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.1.1.tgz#41c2b64472f529331b2055c0424862b44ce58d42"
λκ° μλͺ»νκ³ μλμ§ λ Όμν μ μμ΅λλ€. λλ κ·Έ μμ¬κ° semverλ₯Ό λ°λ₯΄κ³ λ΄ κ²½μ°μλ 2.1.1μΈ μ΅μ μ ν¨ν 릴리μ€λ₯Ό μ°Ύλλ€κ³ μκ°ν©λλ€.
Npmμ dist-tagsμ μ 보λ₯Ό μ¬μ©νλ κ²μΌλ‘ 보μ΄λ©° typescriptλ "2.1.1-rc" λ²μ μ μ¬μ©ν΄μΌ ν©λλ€.
μμ¬λ₯Ό ν΅ν΄ nightmare
λ₯Ό μ€μΉν λ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€. μ
λͺ½μ npmμ beta
dist-tag μλμ μλ 1.6.0
ν΄μλλ electron@^1.4.4
μ λ°λΌ λ€λ¦
λλ€. κ°μ₯ μ΅μ λ²μ μ 1.4.15
μ
λλ€. λλ λͺ¨λ₯΄κ² μ μμ λ² ν λ²μ μ λν΄ μ½λλ₯Ό μμ±νμ΅λλ€. μ΄μ νλ‘λμ
μμ μ€ννλ €λ©΄ λ€μ΄κ·Έλ μ΄λν΄μΌ ν©λλ€.
λ΄ ν΄κ²° λ°©λ²μ package.json
λ³λλ‘ μνλ electron
λ²μ μ λͺ
μμ μΌλ‘ μ μΈνλ κ²μ΄μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μμ¬λ₯Ό ν΅ν΄
nightmare
λ₯Ό μ€μΉν λ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€. μ λͺ½μ npmμbeta
dist-tag μλμ μλ1.6.0
ν΄μλλelectron@^1.4.4
μ λ°λΌ λ€λ¦ λλ€. κ°μ₯ μ΅μ λ²μ μ1.4.15
μ λλ€. λλ λͺ¨λ₯΄κ² μ μμ λ² ν λ²μ μ λν΄ μ½λλ₯Ό μμ±νμ΅λλ€. μ΄μ νλ‘λμ μμ μ€ννλ €λ©΄ λ€μ΄κ·Έλ μ΄λν΄μΌ ν©λλ€.λ΄ ν΄κ²° λ°©λ²μ
package.json
λ³λλ‘ μνλelectron
λ²μ μ λͺ μμ μΌλ‘ μ μΈνλ κ²μ΄μμ΅λλ€.