ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΈΡΡ _ΡΡΠ½ΠΊΡΠΈΡ_ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ _ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅?
_Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΡΡΠ°_
ΠΠ°ΠΊΠΎΠ²ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅?
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ --pure-lockfile
Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ install
ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Π½Ρ Ρ ΡΠΎΠ»ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ node_modules.
ΠΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅, ΡΡΠΎ add/upgrade/remove
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π° install
- Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½ΠΈΡ node_modules ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΡΠ΅ΡΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ (ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΈΡ yarn).
ΠΠ°ΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅?
ΠΠ΅ ΠΏΠΈΡΠ°ΡΡ yarn.lock ΠΈΠ»ΠΈ package.json ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ yarn install
.
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ yarn.lock, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ yarn upgrade
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π²Π°Ρ node.js, yarn ΠΈ Π²Π΅ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΏΡΡΠΆΠ° 0,14
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ yarn install
Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ Π²ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ?
ΠΡΡΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° yarn install
ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ yarn
, Π½ΠΎ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΡΠ½Ρ. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ @bestander , ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡΡΠΈΡΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Ρ.Π΅. add/upgrade/remove
.
ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π±Π΅Π· add/remove/upgrade
ex: Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ Yarn ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ?
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ
yarn install --save-lockfile
17 ΠΎΠΊΡΡΠ±ΡΡ 2016 Π³. Π² 18:53 ΠΠΆΠ΅ΠΉΠΌΡ ΠΠΉΠ΄ Π½Π°ΠΏΠΈΡΠ°Π» Π½Π° [email protected] :
ΠΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ / ΡΠ΄Π°Π»Π΅Π½ΠΈΡ / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ: Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ Yarn, ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
Π²Π΅ΡΡΠΈΡ?-
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°Ρ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/yarnpkg/yarn/issues/570#issuecomment -254282256 ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π·Π²ΡΠΊ
Π½ΠΈΡΡ
https://github.com/notifications/unsubscribe-auth/ACBdWJLpdvqiwcBwqE4KB3x3f4oCn_nVks5q07YYgaJpZM4KSlSw
.
ΠΠ΅Π½Ρ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠΌΡΡΠ°Π΅Ρ. Π ΡΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
Afaik, Π΄Π»Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ Π²Π΅ΡΠΊΠΈΡ
ΠΏΡΠΈΡΠΈΠ½.
ΠΠ΄Π΅Ρ, Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΠ΄Π΅ΠΉ Β«Π²Π΅ΡΠ½ΠΎΠ·Π΅Π»Π΅Π½ΡΠΌΠΈΒ».
ΠΡΡΠ°ΡΠΈ, PR ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ
Π― Π΄ΡΠΌΠ°Ρ, ΠΏΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΡΠΆΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ install
ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° install/add/upgrade
ΠΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ Ρ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ:
yarn
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ CI Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ yarn install --pure-lockfile
?
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ? ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ... Yarn Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π²Π΅ΡΠ½ΠΎ?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅!
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΡΡΠΉ, Π»ΡΠ΄ΠΈ Π·Π°Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
@kittens Π Π°Π·Π²Π΅ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ / ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²? ΠΠ½ΠΈ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΡΡΠΉ, Π»ΡΠ΄ΠΈ Π·Π°Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎΡΡΠΎΠΉ yarn install
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΡΠ°Π½ΠΈΡΡ.
Π‘ npm
Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ»ΠΈΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΈΡ
ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π½ΡΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠΈΡ
Π²Π΅ΡΡΠΈΠΈ Π² Π²Π΅ΡΡΠΈΠΈ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π·Π° semver. Π― Π½Π°Π΄Π΅ΡΠ»ΡΡ, ΡΡΠΎ yarn
ΡΠ΅ΡΠΈΡ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ yarn install --pure-lockfile
ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π½Π° 100% ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½, ΡΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. Π΄Π΅Π»ΠΎ.
ΠΡΡΠ³Π°Ρ ΡΠΎΠ»Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² - ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ. ΠΡΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π½ ΡΠΈΡΡΡΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° yarn outdated
ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ, ΠΈΠ·Π±Π΅Π³Π°Ρ Π»ΡΠ±ΡΡ
ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄Π°Π»ΠΎ Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΈ Π² Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ Π²ΡΠΏΡΡΠΊΠ°, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄Π΅Π»Π°ΡΡ git commit -a
ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ ΡΠΎ Π²ΡΠ΅ΠΌ, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ
Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΄ΠΈΠ²ΠΈΠ»ΠΈ Π½Π°Ρ, ΠΏΡΠ΅ΡΠ²Π°Π² ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ yarn
Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΄Π½Π΅ΠΉ. Π― ΡΠ΅ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ --pure-lockfile
Π±ΡΠ»ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎ ΡΠΎΠΌ, ΡΠ΅ΠΌ ΡΡΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ npm Ρ ΡΠ΅ΡΠΌΠΎΡΡΠ°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π΅Π½ΠΊΠΎΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π΄Π΅ΡΠΎΠ»Ρ :)
@ide ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ npm ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ package.json
, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ yarn.lock
?
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ? ΠΡΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌ, ΡΡΠ΅Π±ΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ²Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Ρ. Π.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ: Π½Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ coffeescript ΠΈΠ· Github Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. coffeescript ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ yarn.lock
Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² Π²ΡΠ΅Π³ΠΎ yarn install
:
diff --git a/foo/yarn.lock b/foo/yarn.lock
index ec667fa..bb1f6ae 100644
--- a/foo/yarn.lock
+++ b/foo/yarn.lock
@@ -930,9 +930,9 @@ code-point-at@^1.0.0:
version "1.6.3"
resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.6.3.tgz#6355d32cf1b04cdff6b484e5e711782b2f0c39be"
-"coffee-script<strong i="8">@github</strong>:jashkenas/coffeescript":
+coffee-script@jashkenas/coffeescript:
version "1.11.1"
- resolved "https://codeload.github.com/jashkenas/coffeescript/tar.gz/887052de079b2f0af9f080031a00bb7544eaca08"
+ resolved "https://codeload.github.com/jashkenas/coffeescript/tar.gz/0d132318ce8f7116a436d97db1f2a5c8b1dedf28"
[email protected]:
version "0.3.0"
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ? ΠΡΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌ, ΡΡΠ΅Π±ΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ²Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Ρ. Π.
Π― Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ yarn install
ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ node_modules.
ΠΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ yarn add
ΠΈ yarn remove
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ package.json, yarn.lock ΠΈ cleanup node_modules.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ add
ΠΈ remove
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ install
100 ΡΠ°Π· ΡΠ°ΡΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² CI, Π³Π΄Π΅ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ:
yarn install
ΠΏΡΠΎΡΠΈΠ² yarn.lock, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΌΠΎΠΈΠΌΠΈ ΡΠΎΠ²Π°ΡΠΈΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» yarn.lock, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.@kittens
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΡΡΠΉ, Π»ΡΠ΄ΠΈ Π·Π°Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ npm ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ package.json, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ yarn.lock?
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ yarn install
Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ yarn.lock
, ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ yarn.lock
Π½Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ package.json
ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ yarn install --save-lockfile
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° +1 ΠΏΡΡΠΆΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ yarn.lock
ΠΠ΅Π½Ρ Π½Π΅ Π²ΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. Π ΠΈΠ΄Π΅Π°Π»Π΅ greenkeeper Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ deps, ΠΈ ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π― Ρ
ΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠΈΡ
ΠΌΡΡΠ»Π΅ΠΉ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ. @kittens ΠΈ Ρ ΠΎΠ±Π° Π΄ΡΠΌΠ°Π΅ΠΌ, ΡΡΠΎ --pure-lockfile
Π΄ΠΎΠ»ΠΆΠ½ΠΎ _Π½Π΅_ Π±ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ.
ΠΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ / ΡΠ΄Π°Π»ΡΡΡ / ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ package.json
Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Lerna .
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΡΡΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ package.json
ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π² Yarn, ΡΠ°ΠΊ ΠΈ Π² npm ΡΠ°ΠΊΠΎΠ²ΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ _syncs_ Ρ package.json
. Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ yarn install
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π² yarn sync
.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ, Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ node_modules
ΠΎΡΡΠ°Π·ΠΈΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ yarn.lock
Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ node_modules
Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ°Ρ package.json
- ΡΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, ΡΡΠΎ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ yarn, Π²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΠΎ ΡΠ΅ΠΌ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ. Π ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ yarn.lock
ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ± ΡΡΠΎΠΌ Π΄ΡΠΌΠ°ΡΡ.
ΠΡΡΠ°ΡΠΈ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ, Π²ΡΡΠ°ΠΆΠ°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ --pure-lockfile
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Yarn Π½Π΅ Π΄Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Π’ΠΎΡ ΠΆΠ΅ package.json
ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ yarn.lock
ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ node_modules
100% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ package.json
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π²Π°Ρ yarn.lock
ΡΠ°ΠΉΠ», Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ node_modules
. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π΅ΡΠ΅ΠΉ, ΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΅Π³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ CI ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ package.json
Π½ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ yarn install
Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ, Ρ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ (Ρ
ΠΎΡΡ Ρ Π½Π΅ Π²ΠΈΠΆΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°) - Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ CI ΠΎΠ± ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Yarn, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ --pure-lockfile
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π»ΡΠ΄ΠΈ Π²ΠΈΠ΄ΡΡ Π² ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π±Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ°ΡΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ», Ρ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΡΡΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
@thejameskyle Π― Π±ΡΠ» Π±Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»Π΅Π½, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΠ»ΠΈ:
package.json
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ "foo": "^1.0.0"
yarn install
. ΠΠ°ΠΊΠ΅Ρ foo
Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π΅Ρ Π²Π΅ΡΡΠΈΡ 1.0.0
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» yarn.lock
ΠΊΠΎΡΠΎΡΡΠΉ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π² [email protected]
yarn.lock
.yarn install
, Π½ΠΎ foo
ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 1.1.0
, ΠΏΠΎΡΡΠΎΠΌΡ Yarn ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ [email protected]
ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ yarn.lock
Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ foo
foo
ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 1.1.0
ΠΠΎΡ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ:
package.json
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ "foo": "^1.0.0"
, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ [email protected]
, Π° yarn.lock
ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² Git.yarn install
ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²Π΅ΡΡΠΈΡ [email protected]
ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ yarn.lock
.foo
ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 1.1.0
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΡΠΎΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ yarn install
Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ Π±Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½Π°ΡΠΈΡ
ΠΎΠΏΠ°ΡΠ΅Π½ΠΈΠΉ. : +1:
ΠΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΠΉ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ°. Π’ΠΎ, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ, Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π΅Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΉ package.json
.
Π― ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ Π·Π°ΠΊΡΡΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ Π»ΡΠ΄Π΅ΠΉ, ΡΡΠΎ, ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ. ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎ Ρ Π½Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· github, ΠΊΠ°ΠΊ Ρ ΡΠΎΠΎΠ±ΡΠ°Π» Π²ΡΡΠ΅.
@adamchainz ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
ΠΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ°. Π’ΠΎ, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ, Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π΅Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΉ
package.json
.
@thejameskyle : Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΡΡΠΎΡΠ½ΠΈΡΡ?
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΠ½ΠΊΡΠΈΡ memoize, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ
ΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ package.json
Π° Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ - yarn.lock
.
package.json
ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ yarn.lock
ΠΈ ΠΊΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.package.json
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½.package.json
Π²Ρ Π°Π½Π½ΡΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ΅Ρ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ yarn.lock
Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°Π½.Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ # 3 ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ Ρ yarn.lock
ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π½Π΅ Π±ΡΠ» ΠΏΡΠΈΠ·Π½Π°Π½ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ package.json
. Π§ΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ memoize ΠΈ Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Yarn.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ _Π΄ΠΎΠ»ΠΆΠ½ΠΎ_ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ git, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ).
ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Ρ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ» (ΠΊΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡΒ» ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ Π°Π½Π½ΡΠ»ΠΈΡΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅), Π½ΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡ.
@thejameskyle : ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ (ΠΈ Π»ΡΠ±ΠΎΠΏΡΡΡΡΠ²Π°) Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ yarn.lock
, ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ΅Π· Π·Π°ΠΏΡΡΠΊΠ° yarn install
ΠΈΠ»ΠΈ npm install
ΡΡΠΎΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ package.json
Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ yarn install
. ΠΡΠ΄Π΅Ρ Π»ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» yarn.lock
?
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΡΡΠ° ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ°Π·Π³Π°Π΄Π°ΡΡ (Π±Π΅Π· ΠΊΠ°Π»Π°ΠΌΠ±ΡΡΠ°).
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π»ΡΠ΄ΠΈ Π²ΡΠ΄Π²ΠΈΠ½ΡΠ»ΠΈ ΡΡΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΡΠΈΡΠ°Ρ Π±Π΅ΡΡΠΏΠΎΡΠ½ΡΠΌΠΈ (ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π½ΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠΊΠΎΡΠΎ Π΄ΠΎΠ±Π΅ΡΡΡΡ).
ΠΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ° ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΡΠ΅ΡΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ (ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΈΡ yarn).
ΠΠ°ΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅?
ΠΠ΅ ΠΏΠΈΡΠΈΡΠ΅ yarn.lock ΠΈΠ»ΠΈ package.json ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΡΠΆΠΈ.
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ yarn.lock, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ yarn upgrade
Π’ΠΎΡΠ½Π΅Π΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°ΠΊΠΎΠ²Π°:
package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ yarn.lock
, yarn.lock
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.package.json
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ°Π·Π°, yarn.lock
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ yarn.lock
ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»ΠΎ package.json
ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ node_modules
.yarn update
Π·Π°ΠΏΡΡΠ΅Π½, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ package.json
.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ , Π΅ΡΠ»ΠΈ yarn.lock
Π±ΡΠ» Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½, yarn Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ yarn.lock
ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ°ΠΏΡ Π²ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΡΠΆΠΈ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°.
@esphen Π½Π°ΠΏΠΈΡΠ°Π»:
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ yarn install ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ Π²ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ?
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ yarn Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ΅ Π΅ΡΠ΅ Π°ΠΊΡΡΠ°Π»Π΅Π½. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ.
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ @bestander , ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡΡΠΈΡΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ / ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ / ΡΠ΄Π°Π»ΡΡΡ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ package.json
Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ yarn.lock
. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ package.json
Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ yarn.lock
, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ yarn.lock
.
ΠΠ°ΠΆΠ½ΡΠΌ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ yarn, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΡΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² ΠΈΡ
package.json
. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ package.json
Π½Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ yarn.lock
, ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²Π΄ΠΎΠΉ, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ - Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ yarn.lock
.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°ΠΉΠ»Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ - ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠΎ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΡΡΠΆΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π²ΡΠ΅Ρ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ package.json
. Π Π΅Π³ΠΈΡΡΡΠΈΡΡΡ Π΅Π³ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ, CI ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ.
@Guuz ΡΠΊΠ°Π·Π°Π»:
ΠΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ Ρ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ:
yarn ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ CI Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ yarn install --pure-lockfile?
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΠΈΠΊΠ°Π΅ΡΡΡ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.
Cargo ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π°Π³ --locked
ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΡΠ»ΠΈ package.json
Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ yarn.lock
, ΡΡΠΎ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°Β». Π£ Bundler Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠ»Π°Π³ ( --frozen
), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, ΠΊΠΎΠ³Π΄Π° Heroku ΠΏΡΠΈΠ½ΡΠ» Bundler, ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ Π»ΡΠ΄ΡΠΌ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π½Π΅ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈ Gemfile
ΠΈ Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Gemfile.lock
.
ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² package.json
ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΆΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΡΡ, ΡΡΠΎ yarn.lock
ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ (ΠΎΠΏΡΡΡ ΠΆΠ΅, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π² package.json
Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅).
ΠΠΎ ΠΏΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ°ΡΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² package.json
, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ yarn
ΠΈ Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ yarn.lock
. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ Π² Π²Π°ΡΠ΅ΠΌ package.json
Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π΅ΡΡΠΈΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ , ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, Π½Π°ΡΡΡΠ°Π΅Ρ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΡΠΆΠΈ.
@esphen ΡΠΊΠ°Π·Π°Π»:
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΡΠΆΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΡΠ°Π½ΠΈΡΡ.
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π±Π΅ΡΡΠΏΠΎΡΠ½ΠΎ.
Π‘ npm Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ»ΠΈΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΠΈ Π² Π²Π΅ΡΡΠΈΠΈ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π° semver. Π― Π½Π°Π΄Π΅ΡΠ»ΡΡ, ΡΡΠΎ yarn ΡΠ΅ΡΠΈΡ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ yarn install --pure-lockfile, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π½Π° 100% ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½, ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ°ΠΏΡΡΠΊ yarn install --pure-lockfile
Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π² package.json
. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π±ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈ yarn.lock
ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² package.json
.
ΠΡΡΠ³Π°Ρ ΡΠΎΠ»Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² - ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½ ΡΠΈΡΡΡΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΡΡ ΠΏΡΡΠΆΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ, ΠΈΠ·Π±Π΅Π³Π°Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄Π°Π»ΠΎ Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΈ Π² Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ Π²ΡΠΏΡΡΠΊΠ°, Π²ΠΌΠ΅ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ git commit -a, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠ»ΠΈ package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, Π΅ΡΠ»ΠΈ yarn.lock
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄ΠΈΠ½ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΊΠ°Π·Π°Π½ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΎΡΡΠ΅ΡΠ΅:
lockfile ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ (ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΈΡ yarn).
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΠΎΠ·ΠΆΠ΅ Π² ΡΠ΅ΠΌΠ΅ @thejameskyle ΡΠΊΠ°Π·Π°Π»:
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΠ½ΠΊΡΠΈΡ memoize, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ package.json, Π° Π²ΡΡ ΠΎΠ΄ΠΎΠΌ - yarn.lock.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ° ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ (Β« yarn.lock
ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ package.json
Β»), ΠΈ Π΅ΡΠ»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΎΡΠΈΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
@adamchainz ΡΠΊΠ°Π·Π°Π»:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ: Π½Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ coffeescript ΠΈΠ· Github Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. coffeescript ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ yarn.lock Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ yarn install
ΠΈ ΠΏΠΎΠ·ΠΆΠ΅:
ΠΠΎ Ρ Π½Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· github, ΠΊΠ°ΠΊ Ρ ΡΠΎΠΎΠ±ΡΠ°Π» Π²ΡΡΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ yarn Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ git sha ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ git. Π£ Cargo ΠΈ Bundler Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΡΠΎΡΠ½ΠΎΠΉΒ» Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ; Π΄Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² git "ΡΠΎΡΠ½ΠΎΠΉ" Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ SHA. ΠΠ°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΠΎΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ package.json
ΠΈ yarn.lock
ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ yarn
, Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½.
ΠΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ, ΡΡΠΎ Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° git; Π² ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ SHA, Π½ΠΎ yarn install
Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π³ΠΈΠ΄ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ²Π°ΠΆΠ°Π΅Ρ.
TL; DR
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ @thejameskyle ΠΈ @kittens, ΡΡΠΎ yarn.lock
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ package.json
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΈΡ
package.json
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΡΡΠΎΠΊ Π² yarn.lock
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ:
package.json
Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΡΡΠΎ Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»Π°Π³Π° Cargo --locked
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² CI Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ±ΠΎΡ ΡΠ±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ package.json
ΠΈ Π·Π°Π±ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ yarn.lock
.
@thejameskyle Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! : heart: Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ Π²Π°ΠΌΠΈ ΠΈ @kittens, ΡΡΠΎ yarn.lock
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ package.json
@wycats ΠΠ°ΠΊ --locked
(ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ). ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΎΠ± ΡΡΠΎΠΌ.
Π‘Π΄Π΅Π»Π°Π½ΠΎ # 1568 Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Git SHA
@wycats , ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠ°Π·Π³Π°Π΄ΡΠ²Π°ΡΡΠΈΠΉ, ΠΎΡΠ΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±Π·ΠΎΡ!
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π΅ΡΠ»ΠΈ yarn.lock Π±ΡΠ» Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½, yarn Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ yarn.lock ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ°ΠΏΡ Π²ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΡΠΆΠΈ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π±ΡΠ» ΠΎΡΠΊΡΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ Yarn, ΠΈ Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±Π΅ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΡΠ΄Ρ.
Π‘Π±ΠΎΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΡΠΆΠΈ 0.13, 0.14 ΠΈ 0.15 Π²Π½Π΅ΡΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ yarn.lock, Ρ
ΠΎΡΡ package.json Π±ΡΠ» ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
ΠΡΠΎ Π²ΡΠ·Π²Π°Π»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ±ΠΎΡΠΊΠΈ Buck Π·Π°ΠΌΠ΅Π΄Π»ΠΈΠ»ΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΊΠ΅ΡΠΈ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
ΠΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ².
@thejameskyle , ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ.
Π― Π½Π΅ ΡΡΠΈΡΠ°Π», ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ package.json Π½Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ yarn.lock, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΡΠΌ. Π Ρ Π²Π°Ρ Π΅ΡΡΡ Π²Π΅ΡΠΊΠ°Ρ ΡΠΎΡΠΊΠ° Π·ΡΠ΅Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π» @wycats , ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½.
ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ
ΡΠ±ΠΎΡΠΎΠΊ, ΠΈ Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡ Π²ΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ.
@wycats
Π’ΠΎΡΠ½Π΅Π΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°ΠΊΠΎΠ²Π°:
- Π΅ΡΠ»ΠΈ
package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡyarn.lock
,yarn.lock
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.- Π΅ΡΠ»ΠΈ
package.json
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ°Π·Π°,yarn.lock
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅yarn.lock
ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»ΠΎpackage.json
ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅node_modules
.- Π΅ΡΠ»ΠΈ
yarn update
Π·Π°ΠΏΡΡΠ΅Π½, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρpackage.json
.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ , Π΅ΡΠ»ΠΈ
yarn.lock
Π±ΡΠ» Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½, yarn Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρyarn.lock
ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ°ΠΏΡ Π²ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡ ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² β 364.
@bestander ΠΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π² PR (# 364), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΡ. ΠΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΠ΅?
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ --pure-lockfile
Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ @wycats. ΠΡΠ»ΠΈ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββΠΎΡΠΊΡΡΡΠΎΠΉ, ΡΠΎΠ³Π΄Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.
@kittens Π·Π²ΡΡΠΈΡ Ρ
ΠΎΡΠΎΡΠΎ, Ρ
ΠΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΌΠ½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° package.json Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ
ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ Π²ΡΠΏΡΡΠΊΡ? ΠΡΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π°ΡΡ ΠΈΠ²Π°.
ΠΠ²ΡΡΠΈΡ Ρ ΠΎΡΠΎΡΠΎ, @thejameskyle , ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠΎΠ·Π΄Π°ΠΌ Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Ρ ΡΡΠ΄Π° ΡΡΡΠ»ΠΊΡ
Π‘ΠΎΠ·Π΄Π°Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠΏΡΡΠΊ https://github.com/yarnpkg/yarn/issues/1576
ΠΡΠ»ΠΎ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ yarn install
Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΡΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ Π² package.json Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² yarn.lock, Ρ.Π΅. ΡΠ±ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌ:
tldr; ΠΠ΅ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² package.json
Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Ρ Π΅Π³ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΌΠ²Π΅ΡΠΎΠΌ package.json
.
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ
Π²ΡΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΎΠΊ, ΡΡΠΎ Π·Π²ΡΡΠ°Π»ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ yarn.lock
Π±ΡΠ»ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΠΊΠ»ΡΡΠΎΠΌ Π½Π° Ρ
Π΅Ρ-ΠΊΠΎΠ΄Π΅ package.json
, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π·Π²ΡΡΠ°Π»ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ yarn.lock
Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ / ΠΊΠ΅Ρ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ ) ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ package.json
, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ "description"
ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ) ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ yarn.lock
Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ package.json
semver.
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ», ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° yarn.lock
Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ package.json
semver (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ semver ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ yarn.lock
, ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
yarn add lodash@^4.17.1
installs [email protected]
[email protected]
.[email protected]
package.json
(ΠΈΠ»ΠΈ yarn add / upgrade / remove Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ lodash).ΠΠ°Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΡΡ Π°ΡΠΈ # 1576
ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΡΠ°ΡΡΡΠΌΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΡΡΠΎΠΉ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π½ΡΡΠ° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈ ΠΌΡ ΠΆΠ΄Π΅ΠΌ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
@CrabDude, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ - Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ - ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ lodash
ΠΈ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ²ΠΎΠΈ Π²Π΅ΡΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² yarn.lock
? Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ?
ΠΠ»ΠΈ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π΄ΠΎΠΏΡΡΡΠΈΠΌ, yarn.lock
ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°ΡΠ΅Π», ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ yarn add
ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² package.json. ΠΡΠ΄ΡΡ Π»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² yarn.lock
ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌΠΈ?
@rarkins
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ - Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ - ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ lodash ΠΈ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ²ΠΎΠΈ Π²Π΅ΡΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² yarn.lock?
Π΄Π°. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΌΠΎΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ.
ΠΡΠ΄ΡΡ Π»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² yarn.lock ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅?
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π½Π΅ lodash
Π΄Π΅ΡΠ΅Π²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ / Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ; Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ lodash
.
Π‘ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π²ΡΠ΅ ΡΡΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ.
ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ : Π― Π»ΡΠ±Π»Ρ ΠΏΡΡΠΆΡ. ΠΠΎ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π±Π΅Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
Π ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ yarn install
ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
(Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ), Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΠ» package.json
. Π ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ, ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ yarn add
. ΠΡΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ CI ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ°ΡΡΡ git ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΡΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π·Π°Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈ ΠΎΠ½ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
Π― ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ ΠΏΡΡΠΆΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ node_modules Π½Π° Π²ΡΠ΅Ρ ΠΌΠ°ΡΠΈΠ½Π°Ρ _ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ_. ΠΠ΅ Ρ Π»ΠΈΡΠ½ΠΈΠΌΠΈ ΡΠ»Π°ΠΆΠΊΠ°ΠΌΠΈ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π²Π°ΠΆΠ½Π΅Π΅ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°. ΠΡΠ»ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½Π° Π±ΡΠ»Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡ, Ρ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ npm Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠΈΠ³Π½Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΠΈ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠΈΡΡ. ΠΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.
ΠΠΎΠΏΡΠΎΡΠΎΠ²
package.json
ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ node_modules ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°? ΠΡΡΠΆΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π΅Π»ΡΡΡ ΠΈ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΡΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ).yarn add
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΅ΡΡΠΈΠΈ Π² package.json
Ρ ^
? ΠΠΏΡΡΡ ΠΆΠ΅, Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ yarn ΠΎΠ±Π΅ΡΠ°Π»Π° Π·Π°ΠΌΠΎΡΠΎΠ·ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
node_modules
, yarn install
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ
ΠΈΡΡΠ΅Π·Π°ΡΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΡ
. npm
Π² ΡΡΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ.node_modules
ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, yarn ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ, ΠΈ ΠΎΠ½ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ.Π ΡΠ΅Π»ΠΎΠΌ, yarn ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ (Π½Π΅) ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ: ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΌΠ½Π΅ Π½Π°ΡΠ°ΡΡ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»Π΅Ρ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΌΠ½Ρ ΠΈ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Ρ ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ½ΠΈ ΠΏΡΡΠΌΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ.
ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΠΈΠΉΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ Π²ΡΠ΅Π»ΡΠ΅Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΈ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ Ρ Π»ΠΎΠΏΠΎΡΡ. Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ package.json Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ node_modules, ΡΡΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ Ρ. Π., ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠ΅ΡΡΠ²ΡΠΌΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΡΠΈ, ΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
@jspiro , ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎ.
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠ΄Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ².
ΠΡΡΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Yarn?
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 0.18-0.19 ΠΌΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² yarn.lock ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ.
ΠΠΎΠΏΡΠΎΡΠΎΠ²:
ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ node_modules Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ? Π― Π½Π΅ Π²Π΅ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΠΏΡΡΠ°Π½ΠΈΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ - ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΠΏΡΡΠΆΠ° Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π° Π²ΠΈΠ΄ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
Dev ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ bing, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ
Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, node_modules Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
.
ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ package.json ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ node_modules ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°? ΠΡΡΠΆΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π΅Π»ΡΡΡ ΠΈ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ).
ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ PR Π·Π° ΡΡΠΎ.
ΠΠΎΡΠ΅ΠΌΡ yarn add ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΅ΡΡΠΈΠΈ Π² package.json Ρ ΠΏΠΎΠΌΠΎΡΡΡ ^? ΠΠΏΡΡΡ ΠΆΠ΅, Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ yarn ΠΎΠ±Π΅ΡΠ°Π»Π° Π·Π°ΠΌΠΎΡΠΎΠ·ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ npm.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ yarn add [email protected]
ΠΈΠ»ΠΈ yarn add is-array --exact
Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΎ Π² RFC.
ΠΠΎΠ³Π΄Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π² node_modules, yarn install ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΡΡΠΏΠ΅Ρ Π΅ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΡΡΠ΅Π·Π°ΡΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΡ . npm Π² ΡΡΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΡΠΆΠ° ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π½ΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΡΠΈΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΡΡΡΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠ°ΡΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² node_modules, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΌΠ΅Π»ΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠ°ΠΉΠ» node_modules/.yarn-integrity
ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ. ΠΡΠΎ Π½Π΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± - Π·Π°ΠΏΡΡΡΠΈΡΡ yarn install --force
, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅Ρ yarn.lock.
Π€Π°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΠΊ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ node_modules ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΈΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ (ΡΡΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅ - Ρ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΠΎΠ½ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρ)
ΠΠ°Π²Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΡΡΠΎΠ³ΠΎ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΌΠ½Π΅ ΠΊΠΎΠΏΠΈΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π½Π΅ ΠΊΠ°ΡΠ°ΡΡΡ package ΠΈΠ»ΠΈ node_modules ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, yarn Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ, ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ.
Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ Π²ΡΠΏΡΡΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΡΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΡΡΡΡΠΊΡΡΡΠ° node_modules ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΠΈΠ·-Π·Π° Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠΎΠ΄ΡΠ΅ΠΌΠ°.
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ.
ΠΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° import
https://github.com/yarnpkg/yarn/pull/2580.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ node_modules.
@jspiro , Yarn - ΡΡΠΎ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ, ΠΈ ΠΌΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ Π²Π°ΡΠΈ ΠΏΠΈΠ°ΡΡΠΈΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π° Π²Π°Ρ.
ΠΡΡΡ Π»ΠΈ ΡΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΎΡΡ Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ https://github.com/yarnpkg/yarn/issues/3490 , ΠΈΠ½ΠΎΠ³Π΄Π° yarn install
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΈ ΠΌΡ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠΎ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΉΠ» yarn.lock Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² package.json Π²ΡΡΡΠ½ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ --pure-lockfile / - frozen-lockfile Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true Π² .yarnrc, ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
--install.pure-lockfile true
ΠΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΡΡΡΠΉ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡΠΎ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ yarn.lock
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌΠΈ ΡΡΠ°ΠΏΠ°ΠΌΠΈ?
ΠΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ
ΠΠ΅Π½Ρ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠΊΡΡΠΈΠ»ΠΎ, ΠΊΠΎΠ³Π΄Π° package.json
ΠΈ yarn.lock
Π²ΡΡΠ»ΠΈ ΠΈΠ· ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· npm install --save
Π²ΠΌΠ΅ΡΡΠΎ yarn add
.
Π― Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ pure-lockfile
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ frozen-lockfile
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ yarn install
.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ frozen-lockfile
Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π΅ΡΠ»ΠΈ yarn.lock
ΠΈ package.json
Π½Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, frozen-lockfile
ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ±ΠΎΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, jenkins), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΡΠ±ΠΎΡΠΊΡ, ΠΊΠ°ΠΊ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ±ΠΎΠΉ.
ΠΠ°ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² package.json / yarn.lock.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ yarn install
ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π΅ΡΠ΅ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π½Π°ΠΏΠΈΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ yarn.lock
, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π±ΡΠ΄ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ²Ρ Π² ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ°ΡΠΊΠ° Π²Π΅ΡΡΠΈΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ:
Π’ΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠ°ΠΊ add
, remove
ΠΈ upgrade
Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ yarn.lock
.
install
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΠ±ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΠΈΡ
Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ΅ΡΠΏΠ΅ΡΡ Π½Π΅ΡΠ΄Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ package.json
ΠΈ yarn.lock
. (ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ - Π΅ΡΠ»ΠΈ Π²Π½Π°ΡΠ°Π»Π΅ Π½Π΅Ρ yarn.lock
. Π’ΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΡΠ°ΡΡΡΡ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°.)
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ±ΠΎΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, jenkins), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ ΡΠ΄Π°ΡΡΡΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ CI?
@BYK Π― Π½Π΅ Π·Π½Π°Π», ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π·Π°ΠΊΡΡΡΠ°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π°. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΌΠ½Π΅ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ½ΠΎΠ²Π°?
Π― Π±Ρ ΡΠΊΠ°Π·Π°Π» ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΡ βΊοΈ
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ @thejameskyle ΠΈ @kittens, ΡΡΠΎ yarn.lock Π΄ΠΎΠ»ΠΆΠ΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ package.json.
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π½ΠΎ Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ yarn.lock, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π² package.json ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π²Π½ΡΡΡΠΈ package.json. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ TypeScript, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ TypeScript Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ (Ρ ΡΡΠ΅ΡΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²).
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΡΡΠ° ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ°Π·Π³Π°Π΄Π°ΡΡ (Π±Π΅Π· ΠΊΠ°Π»Π°ΠΌΠ±ΡΡΠ°).
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π»ΡΠ΄ΠΈ Π²ΡΠ΄Π²ΠΈΠ½ΡΠ»ΠΈ ΡΡΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΡΠΈΡΠ°Ρ Π±Π΅ΡΡΠΏΠΎΡΠ½ΡΠΌΠΈ (ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π½ΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠΊΠΎΡΠΎ Π΄ΠΎΠ±Π΅ΡΡΡΡ).
ΠΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ° ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π’ΠΎΡΠ½Π΅Π΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°ΠΊΠΎΠ²Π°:
package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡyarn.lock
,yarn.lock
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.package.json
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ°Π·Π°,yarn.lock
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅yarn.lock
ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»ΠΎpackage.json
ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅node_modules
.yarn update
Π·Π°ΠΏΡΡΠ΅Π½, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρpackage.json
.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ , Π΅ΡΠ»ΠΈ
yarn.lock
Π±ΡΠ» Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½, yarn Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρyarn.lock
ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΠ°ΠΏΡ Π²ΡΠ±ΠΎΡΠΊΠΈ.ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΡΠΆΠΈ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°.
@esphen Π½Π°ΠΏΠΈΡΠ°Π»:
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ yarn Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ΅ Π΅ΡΠ΅ Π°ΠΊΡΡΠ°Π»Π΅Π½. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
package.json
Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅yarn.lock
. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅package.json
Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρyarn.lock
, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡyarn.lock
.ΠΠ°ΠΆΠ½ΡΠΌ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ yarn, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΡΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² ΠΈΡ
package.json
. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡpackage.json
Π½Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρyarn.lock
, ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²Π΄ΠΎΠΉ, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ - Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡyarn.lock
.ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°ΠΉΠ»Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ - ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠΎ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΡΡΠΆΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π²ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ
package.json
. Π Π΅Π³ΠΈΡΡΡΠΈΡΡΡ Π΅Π³ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ, CI ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ.@Guuz ΡΠΊΠ°Π·Π°Π»:
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΠΈΠΊΠ°Π΅ΡΡΡ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.
Cargo ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π°Π³
--locked
ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΡΠ»ΠΈpackage.json
Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρyarn.lock
, ΡΡΠΎ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°Β». Π£ Bundler Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠ»Π°Π³ (--frozen
), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, ΠΊΠΎΠ³Π΄Π° Heroku ΠΏΡΠΈΠ½ΡΠ» Bundler, ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ Π»ΡΠ΄ΡΠΌ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π½Π΅ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈGemfile
ΠΈ Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡGemfile.lock
.ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²
package.json
ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΆΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΡΡ, ΡΡΠΎyarn.lock
ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ (ΠΎΠΏΡΡΡ ΠΆΠ΅, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π²package.json
Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅).ΠΠΎ ΠΏΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²
package.json
, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρyarn
ΠΈ Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡyarn.lock
. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ Π² Π²Π°ΡΠ΅ΠΌpackage.json
Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π΅ΡΡΠΈΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ , ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, Π½Π°ΡΡΡΠ°Π΅Ρ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΡΠΆΠΈ.@esphen ΡΠΊΠ°Π·Π°Π»:
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π±Π΅ΡΡΠΏΠΎΡΠ½ΠΎ.
ΠΠ°ΠΏΡΡΠΊ
yarn install --pure-lockfile
Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π²package.json
. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π±ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈyarn.lock
ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²package.json
.ΠΡΠ»ΠΈ
package.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, Π΅ΡΠ»ΠΈyarn.lock
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄ΠΈΠ½ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΊΠ°Π·Π°Π½ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΡΡΠ΅ΡΠ΅:Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΠΎΠ·ΠΆΠ΅ Π² ΡΠ΅ΠΌΠ΅ @thejameskyle ΡΠΊΠ°Π·Π°Π»:
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ° ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ (Β«
yarn.lock
ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡpackage.json
Β»), ΠΈ Π΅ΡΠ»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΎΡΠΈΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.@adamchainz ΡΠΊΠ°Π·Π°Π»:
ΠΈ ΠΏΠΎΠ·ΠΆΠ΅:
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ yarn Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ git sha ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ git. Π£ Cargo ΠΈ Bundler Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΡΠΎΡΠ½ΠΎΠΉΒ» Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ; Π΄Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² git "ΡΠΎΡΠ½ΠΎΠΉ" Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ SHA. ΠΠ°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΠΎΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ
package.json
ΠΈyarn.lock
ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅yarn
, Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½.ΠΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ, ΡΡΠΎ Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° git; Π² ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ SHA, Π½ΠΎ
yarn install
Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π³ΠΈΠ΄ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ²Π°ΠΆΠ°Π΅Ρ.TL; DR
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ @thejameskyle ΠΈ @kittens, ΡΡΠΎ
yarn.lock
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρpackage.json
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΈΡpackage.json
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΡΡΠΎΠΊ Π²
yarn.lock
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈpackage.json
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ:package.json
Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΡΡΠΎ Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»Π°Π³Π° Cargo
--locked
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² CI Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ±ΠΎΡ ΡΠ±ΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρpackage.json
ΠΈ Π·Π°Π±ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉyarn.lock
.