ΠΠ°Ρ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ?
ΠΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ 1 ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ chrome-web-store
ΠΏΠ»Π°Π³ΠΈΠ½ npm
Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎ.
ΠΠΏΠΈΡΠΈΡΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ auto
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° git ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ΅.
Π ΠΏΠ»Π°Π³ΠΈΠ½Π΅ npm
Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π», ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡ Π²ΡΠΏΡΡΠΊΠΈ Π΄Π»Ρ sub-packages
. ΠΡΠ΅ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° lerna
ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² core
.
ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (Π²ΡΠ΅, ΠΊΡΠΎΠΌΠ΅ git-tag
), ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΡΠΈΠΌΠ΅Ρ: ΠΏΠ»Π°Π³ΠΈΠ½ npm
package.json
(ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΈΠ»ΠΈ lerna)auto
ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ package
auto
ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ package
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ ΠΏΠ»ΠΎΡ
ΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ git-tg
(ΠΈ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»).
package
.package
ΠΠΏΠΈΡΠΈΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ
ΠΠ΅ Π²Π°ΠΆΠ½ΠΎ.
ΠΠΎΡΠ°Π·ΠΌΡΡΠ»ΠΈΠ² Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΠΌΠ΅Π» Π±Ρ ΡΠΌΡΡΠ» Π²Π²Π΅ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΎΠΏΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.
{
// Still have some global config at root
"name": "Andrew Lisowski",
"email": "[email protected]",
// Plugins used for every package
"plugins": ["conventional-commits"],
"packages": [
// Target specific directories and apply a set of plugins to them
{
"target": "www",
"plugins": ["git-tag"]
},
{
"target": "api",
"plugins": ["npm"]
},
// Specify a pattern or even and array of patterns or directories
{
"target": ["packages/**", "utils"],
"plugins": ["npm"]
},
{
"target": "web-store",
"plugins": [
"chrome-web-store",
// Whole lifecycle is run for each package so you can have package plugins
["upload-assets", { "assets": ["./path/to/file"] }]
]
}
]
}
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Ρ Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ shipit
Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π΅ΡΠ΅ΠΉ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ex Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ:
Π‘ ΡΠ°ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ lerna
{
"name": "Andrew Lisowski",
"email": "[email protected]",
"packages": [
{
"target": "packages/**",
"plugins": ["npm"]
}
]
}
ΠΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ package
ΡΠΎ Π²ΡΠΏΡΡΠΊ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈ Π±Π΅Π· lerna
. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠ΅Π» ΠΏΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΡΡΠΈ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° leran
Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡ
Π΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ( fixed
ΠΈ independent
).
{
"name": "Andrew Lisowski",
"email": "[email protected]",
"packages": [
{
"target": "fixed-monorepo",
"plugins": ["npm"]
},
{
"target": "independent-monorepo",
"plugins": ["npm"]
}
]
}
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ chrome-web-store ΠΏΠ»Π°Π³ΠΈΠ½ npm Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎ.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ _Π½Π΅__ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅?
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΅Π³ΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ. ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ Π±Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ°. Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ git Π² ΡΠ΄ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·? Ρ ΠΎΡΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ, Π½ΠΎ ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·?
Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠΈΡΠ΅, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ΅Π³ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅Π»Π°Π΅ΡΠ΅? ΠΡ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π² ΠΊΠΎΠ½ΡΠ΅?
ΠΠΎΡΠ°Π·ΠΌΡΡΠ»ΠΈΠ² Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΠΌΠ΅Π» Π±Ρ ΡΠΌΡΡΠ» Π²Π²Π΅ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΎΠΏΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.
ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΡΡΠΊΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ s3 / gh-ΡΡΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° docs
ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ΄Π½Π° Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, - ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 1 ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π²ΡΠΏΡΡΠΊΠ°. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅:
{
"name": "Andrew Lisowski",
"email": "[email protected]",
"packages": [
{
"target": "packages/**",
"plugins": ["npm"]
},
{
"target": "packages/chrome-ext",
"plugins": ["chrome-web-store"]
},
]
}
ΠΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ chrome-ext
ΠΊΠ°ΠΊ Π² npm
_, ΡΠ°ΠΊ ΠΈ Π² webstore
? ΠΠ»ΠΈ Π²ΡΠΏΡΡΠΊ Π·Π° npm
Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΏΠ΅ΡΠ²ΡΠΌ?
Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠΈΡΠ΅, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ΅Π³ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅Π»Π°Π΅ΡΠ΅? ΠΡ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π² ΠΊΠΎΠ½ΡΠ΅?
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ lerna. ΠΏΡΠΎΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅. ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ
ΠΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ chrome-ext ΠΊΠ°ΠΊ Π² npm, ΡΠ°ΠΊ ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅? ΠΠ»ΠΈ Π²ΡΠΏΡΡΠΊ npm ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΏΠ΅ΡΠ²ΡΠΌ?
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π°, ΠΎΠ½ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ ΡΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π² Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π΅ΡΡΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, npm ΠΈ ΡΠ΅Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² github)
{
"name": "Andrew Lisowski",
"email": "[email protected]",
"packages": [
{
"target": "packages/**",
"plugins": [["npm", { registry: "https://npm" }]]
},
{
"target": "packages/**",
"plugins": [["npm", { registry: "https://github-package-registry" }]]
},
]
}
ΠΠ²ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ... ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ π
Π― ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΏΡΡΠ°ΡΡΡ Π±ΡΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΠΌΠ½ΡΠΌ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΡΠΎΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ Π΅Π³ΠΎ ΡΡΡΠ΄Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ).
ΠΡΠΌΠ°Ρ, ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ - ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ npm
, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? Π’ΠΎΡ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ git, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ git ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π»ΠΎΠ²ΡΡΠΊΠ΅, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΡΠΏΡΠ°Π²ΠΊΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΄ΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ° CI.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ npm, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»?
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠΈΡΠ΅ packages
. Π’Π°ΠΊ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡΠ΄ΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Ρ API ΡΠ·Π»Π° ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
ΠΡΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π»ΠΎΠ²ΡΡΠΊΠ΅, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠ° ΠΈΠ΄Π΅Ρ. Π€ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ git Π² auto, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°. Π Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ Ρ ΡΠΊ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΌΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΠ»ΡΠΎΠΊ).
Π― ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΠΌΠ°Π» ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Auto Ρ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ Π½ΡΠΆΠ΄.
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» .autorc
ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠ³ Π±ΡΡΡ Π²ΡΠΏΡΡΠ΅Π½ Π² ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΡΡΠΊ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠ° 1 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΡΠ΅Π³ΠΎΠΌ sub-project/v1.4.5
Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π³ sub-project2/v9.9.9
ΠΠ°ΡΠ΅ΠΌ Auto ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ git describe --tags --matches "sub-project1/*"
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΡΠΎΡΡΠΎ ΠΌΡΡΠ»Ρ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΡΠΎΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π». Π―
ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΡΡΠΈΠΌ Π½Π° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅.
ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΡΠ»Π°Π³ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ (βΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ) ΠΈ
Π²ΡΠ΅ ΠΈΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³Π»Π°Π΄ΠΊΠΎ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΠΎΠ»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Β«ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²Β», ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ
ΠΌΠ°ΡΡΠΈΠ² Β«autorcΒ»
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ, Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π»ΠΎΠ²ΡΡΠΊΡ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ. ΠΡΠΎΡ
ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ
Π ΡΡΠ΅Π΄Ρ, 29 ΡΠ½Π²Π°ΡΡ 2020 Π³., Π² 21:11 Alejandro Barrientos <
[email protected]> Π½Π°ΠΏΠΈΡΠ°Π»:
Π― ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΠΌΠ°Π» ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Auto Ρ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»
Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ Π½ΡΠΆΠ΄.Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
ΡΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» .autorc, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ
ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ
ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΡΡΠ΅Π½ Π² ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
Π²ΡΠΏΡΡΠΊ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠ°1 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΠ΅Π³Π°ΠΌΠΈ sub-project / v1.4.5 ΠΈ
Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π³ sub-project2 / v9.9.9ΠΠ°ΡΠ΅ΠΌ Auto ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ git describe --tags --matches
"sub-project1 / *" Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.ΠΡΠΎΡΡΠΎ ΠΌΡΡΠ»Ρ.
-
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΡΠ΅ΠΌΡ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/intuit/auto/issues/917?email_source=notifications&email_token=AAJDEBGUZR5HF6P3OKRILTDRAJOOXA5CNFSM4KMLWYF2YY3PNVWWK3TUL52HS4DFVREXIWL8
ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ
https://github.com/notifications/unsubscribe-auth/AAJDEBDX72NB5Z7ZJPTDHVLRAJOOXANCNFSM4KMLWYFQ
.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠ½ΠΎΠ²Π°, Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠ΅Π½Ρ Π²Π·Π²ΠΎΠ»Π½ΠΎΠ²Π°Π½! ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΎΠ² Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π·Π²ΡΡΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΎΠ»Π΅ packages
.
@hipstersmoothie Π΅ΡΡΡ Π»ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² 2 ΡΠ΅Π΅ΡΡΡΠ°Ρ npm Ρ ΠΏΠΎΠΌΠΎΡΡΡ shipit, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ? ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΎΠ±Π·ΠΎΡΠ° ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
@vincentbriglia Π±ΡΠ΄Π΅Ρ Π»ΠΈ next
ΠΈ latest
, ΠΊΠ°Π½Π°ΡΠ΅ΠΉΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. ΠΡΡΠ»ΠΈ?
@hipstersmoothie: Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠ΅Π΅ΡΡΡΠ΅ NPM ΠΈ GHPR. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ GHPR, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ npm ΠΈ github.
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Π·Π° Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π΄Π²Π΅ΡΡΠΌΠΈ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ°Π½Π°ΡΠ΅Π΅ΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ / ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠ² Ρ feature branches > next
ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°Π½Π°ΡΠ΅Π΅ΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ Π½Π°Ρ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΠ»Π°Π³ΠΈΠ½ npm Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΆΠ°Π»Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ Π΅Π΅.
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GHPR ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Β«ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΒ», Π° Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, npmjs.org ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌ. (Π― Π½Π΅ Π²ΠΈΠ΄Π΅Π», ΡΡΠΎΠ±Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π» ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ· github). Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ npmjs, Π° Π½Π΅ GHPR ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ΅Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ GHPR: ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½Π΅Π΄Π΅Π»Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ» (ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ 50 ΠΠ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ)
Π― Π±Ρ ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°Π΄ΠΎΡΡΡΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Π», ΠΏΠΎΠΊΠ° Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ ghpr, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΡΠ½Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ v10, ΠΈΠ΄Π΅ΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ, ΠΊΠ°ΠΆΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Β«ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΒ».
ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΆΠΈΡΡ Π±Π΅Π· ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΠΈ ΡΠ°ΡΡΠ½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠΎΠ±Ρ Π²Ρ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π― Π±ΠΎΠ»ΡΡΠ΅ Π΄ΡΠΌΠ°Π» ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π΅ "Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΅ΡΡΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠ»Π°Π³ΠΈΠ½ npm Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½, ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, npm ΠΈΠ»ΠΈ ghpr), Π²ΡΠΏΡΡΠΊΠ°Ρ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΡΠΈΠΊΡΠ°ΡΠΈΠΈ HEAD.
Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ GHPR: ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½Π΅Π΄Π΅Π»Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ» (ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ 50 ΠΠ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ)
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ. Π― Π½Π΅ Π·Π½Π°Π», ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ!
ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, npm ΠΈΠ»ΠΈ ghpr Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ), Π²ΡΠΏΡΡΠΊΠ°Ρ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΈΠΊΡΠ°ΡΠΈΠΈ HEAD
Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ! ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ (ΠΎΠ²)
ΠΡΠΈΠ²Π΅Ρ! ΠΠ°ΠΊΠΎΠ²ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Auto ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ°?
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (Π²ΡΠ΅, ΠΊΡΠΎΠΌΠ΅
git-tag
)
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Π°Π³ΠΈΠ½ docker
ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΠ»ΠΎΡ
ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½: ΠΌΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Auto Ρ sbt (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ Scala), ΠΈ Ρ Π½Π΅Π³ΠΎ Π½Π΅Ρ ΠΌΠ°ΡΠΈΠ½ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ JSON / XML. Π‘Π±ΠΎΡΠΊΠ° sbt Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° Scala ΠΈ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ±ΠΎΡΠΊΠ΅ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ sbt.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ.
ΠΠ· ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΡ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ. Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π½ΡΠ΅ Π²ΠΈΠ΄Ρ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ²? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π· Docker ΠΈ Π°ΡΡ ΠΈΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (ΠΊΡΠ΄Π°-ΡΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ). ΠΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ GitHub, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² NPM ΠΈ ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Π²ΡΠΏΡΡΠΊΠ°Ρ GitHub.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΅Π³ΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ. ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ Π±Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ°. Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ git Π² ΡΠ΄ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·? Ρ ΠΎΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ _ Π·Π°Ρ ΠΎΡΠ΅ΡΡ_ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
package
.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠΡΠΎ Π²ΠΎΡΡ
ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠΎΠ΅ΠΌΡ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΒ». ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π»ΠΎΠ²ΡΡΠΊΠ° publish
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° _only publish_ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π³ΠΈ git. ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΎΠ±ΡΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ / ΠΈΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Auto ΠΈΠ»ΠΈ ΠΎΠ½ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠ΅Π΄Π²Π·ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ NPM?