Yarn: рдкреИрдХреЗрдЬ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝реЗрдВред json

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдирд╡ре░ 2016  ┬╖  96рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yarnpkg/yarn

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред (рдЬреИрд╕реЗ npm рдмрд┐рдирд╛ ssves params рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)ред рдХреНрдпрд╛ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рд░рд╛рдп рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ --no-save рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рдЖрдПрдЧреАред

рд╕рднреА 96 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирд╣реАрдВ, рдпрд╣ рдлреАрдЪрд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдкреИрдХреЗрдЬ рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдРрд╕реА рдЪреАрдЬрд╝ рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдлреЗрд╕рдмреБрдХ рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ

рд╣рдордиреЗ npm рд╕реНрдерд╛рдкрд┐рдд рдХреЗ "рдЕрджреГрд╢реНрдп рдирд┐рд░реНрднрд░рддрд╛" рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред yarn add <name> рдЪрд▓рд╛рдирд╛ npm install --save <name> рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдореИрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЦрд╛рд╕рдХрд░ рдЬрдм рдореИрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг (рдЬреЛ file: dep рдмрдирд╛рддрд╛ рд╣реИ) рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред

рдЬрдмрдХрд┐ рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдирдкреАрдПрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдПрдХ рдЦрд░рд╛рдм рд╡рд┐рдХрд▓реНрдк рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА npm i = рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл npm рдХреА рдЬрд░реВрд░рдд рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ node_module рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ yarn install s рд╕реЗ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо package.json рдФрд░ yarn.lock рд╣реЛрдирд╛ рдорд╛рдирддреЗ рд╣реИрдВред рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрддред

рд╣рдорд╛рд░реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (libxslt)

  • рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ рдиреЛрдб_рдореЙрдбреНрдпреВрд╕ рдореЗрдВ рдЦреЛрд▓ рджреЗрддреЗ рд╣реИрдВ
  • Linux рдХреЗ рд▓рд┐рдП: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдмрд┐рдирд╛ рд╕реЗрд╡ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдЧрд░ рдпрд╣ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред рддреЛ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛрдИ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛)

рдХреНрдпрд╛ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдл рддрд░реАрдХрд╛ рд╣реИ (рдпрд╛ рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛)?

(рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдкреИрдХреЗрдЬ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рдкрд░ рдореБрдЭреЗ рдХреЛрдИ рд╕рд╛рдл рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ)

@GuillaumeLeclerc yarn add -D xxx рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЬ рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ?

рдЕрдЧрд▓реА рдмрд╛рд░ рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@GuillaumeLeclerc рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рд╛рдБред

@GuillaumeLeclerc рдЖрдк рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ...

рдХреГрдкрдпрд╛ yarn add --no-save рдЬреИрд╕реЗ рдПрдХ рддрд░реНрдХ рдЬреЛрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХреВрдВред json рдпрд╛ рдпрд╛рд░реНрди редрд▓реЙрдХред рдореИрдВ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд╛рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп npm install рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ "рдЕрдзрд┐рдХрддрдо рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ"ред рддреЛ рдпрд╛рд░реНрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рддрд░реАрдХрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдореБрдЭреЗ package.json рдпрд╛рд░реНрди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рди рдХрд░реЗрдВред

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдореБрдЭреЗ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ peerDep рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╛рд░реНрди рдХреЗ рдкрд╛рд╕ install рджреМрд░рд╛рди рд╕рд╣рдХрд░реНрдореА рдбрд┐рдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ yarn add <package> рдмрд┐рдирд╛ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗ рд╣реБрдП рдирд╣реАрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдБред рдореИрдВ рдлрдБрд╕ рдЧрдпрд╛ рд╣реВрдБред

@viveleroi рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ package.json рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ рд╕рд╣рдХрд░реНрдореА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХреНрдпреЛрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

@hpurmann рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ peerDependencies рдХреЛ dependencies (рдпрд╛ devDependencies рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ --dev рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред рдЕрдЧрд░ рдпрд╣реА рдЗрд░рд╛рджрд╛ рд╣реИ рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИред

@ рд╣реВрдкрдореИрди рдореИрдВ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╕рд╣рдХрд░реНрдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдмрд╕ рдЬреЛрдбрд╝реЗрдВ - рдирд╣реАрдВ-рд╕рд╣реЗрдЬреЗрдВ => рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рдореБрдЭреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдкрдиреЗ рд╕реВрдд рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдирд╣реАрдВ-рдмрдЪрд╛ рд╡рд┐рдХрд▓реНрдк рдореИрдВ рдЗрд╕реЗ рдШреЗрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдХреНрдпреЛрдВрдХрд┐ yarn link local-pkg рд╣реЛрд╕реНрдЯ рдРрдк рдореЗрдВ рд╕реНрдерд╛рдиреАрдп-pkg рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдРрдк рдкреИрдХреЗрдЬ рдореЗрдВ рдирд╣реАрдВ рд╕рд╣реЗрдЬреВрдВрдЧрд╛ред рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп-pkg рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рд░рд╛рдп рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ --no-save рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рдЖрдПрдЧреАред

рдореИрдВ рдпрд╛рд░реНрди рдХреЛ NWSJS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ AWS рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕рдорд░реНрдерд┐рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ aws-sdk рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдЗрд╕реЗ package.json рдореЗрдВ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдП рдХреНрдпреЛрдВрдХрд┐ AWS рд▓реИрдВрдмрдбрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдЙрдирдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред Aws-sdk рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдВрддрд┐рдо рдкреИрдХреЗрдЬ рдлреВрд▓рд╛ рд╣реБрдЖ рд╣реЛрдЧрд╛ред

рдпрд╛рд░реНрди рд▓рд┐рдВрдХ рдФрд░ рдпрд╛рд░реНрди рдРрдб рдПрдХ рд╕рд╛рде рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рд░реНрди рдРрдб рдкреИрдХреЗрдЬ.рдЬрд╕рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдпрд╛рд░реНрди рд▓рд┐рдВрдХ рд╕рд┐рд░реНрдл рд╕реНрдерд╛рдиреАрдп рдкреИрдХреЗрдЬ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рдкреИрдХреЗрдЬ X рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ Y рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдк X рдФрд░ Y рджреЛрдиреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк X рдФрд░ Y рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ Y рдХреЛ X рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк X рдореЗрдВ рдпрд╛рд░реНрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ Y рдХрд╛ рд▓рд┐рдВрдХред

рдЖрдк рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ?

~ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рдкреИрдХреЗрдЬ json рдпрд╛ рдпрд╛рд░реНрди рдкрд░ рдПрдХ рдкрджрдЪрд┐рд╣реНрди рдмрдирд╛рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ npm-рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

~ npm install [packages ...] --no-save --no-package-lock ~

рдЬреИрд╕рд╛ рдХрд┐ @heikomat рдиреЗ рдХрд╣рд╛ рд╣реИ, рдЪреВрдВрдХрд┐ npm5 рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рдмрд╛рдж рдСрдЯреЛ-рдкреНрд░реВрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ https://github.com/npm/npm/issues/16853 + https://github.com/npm/npm/pull/18921) рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдиреЛрдб_рдореЙрдбрд▓-рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ рддреЛ рдЕрдм рдореИрдВ npm рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛

рдореИрдВ рдЕрдкрдиреА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ npm install рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдЙрдк-рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдореБрдЦреНрдп рдиреЛрдб_рдмреЛрдбреНрдпреВрд▓реНрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ npm4 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди npm5 рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ npm5 рд╕рд┐рд░реНрдл install-рджреМрд░рд╛рди рдХреБрдЫ рд╕рдВрдХреБрд▓ рдХреЛ nuke рддрдп рдХрд░рддрд╛ рд╣реИ ред- (рджреЗрдЦреЗрдВ https://github.com/npm/npm/pull/18921)

рдЙрд╕ рдХрд╛рд░рдг рд╕реЗ, рдореИрдВ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ npm install рдХреЛ рдпрд╛рд░реНрди рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрджрд┐ рдпрд╛рд░реНрди рд╣рдореЗрд╢рд╛ рдкреИрдХреЗрдЬ рдХреЛ рдЫреВрддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд╛рдиреАрдп рд╕рдмрдореЙрдбрд▓реНрд╕ рдХреЗ рдЬреЛрдВрд╕, рдХрдо рд╕реЗ рдХрдо рдмрд┐рдирд╛ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдВрдд рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдпрд╛рд░реНрди рдХреЗ рдмрд╛рдж "рд╕рдлрд╛рдИ" рдХрд░ рд░рд╣реА рд╣реИ

рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА --no-lockfile рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдиреЛрдб_рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реЛрдЪ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рджреЗрд╡реЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдХрд┐рд╕реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЕрдиреБрд░рдХреНрд╖рдХ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╢рд┐рдмреЛрд▓реЗрде рдХрд╛ рдкрд╛рда рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдиреИрддрд┐рдХ рдЕрд╕рдлрд▓рддрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрд╛рдЙрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рдВрдпрдо рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рдордЭреМрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╢рд╛рдпрдж рд╣рдо рд╕реНрд╡рд┐рдЪ --i-am-a-heritic-and-a-bad-programmer рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЛрд╖ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП yarn npm рд╕реЗ рдмрдЪрддрд╛ рд╣реИ

рдФрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ # 4297 рдЕрдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ :)
рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЖрдкрдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдмреЗрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд░реБрдХреЛ рдХреНрдпрд╛ рддреБрдо рдореБрдЭрд╕реЗ рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реЛ? рдпрд╣ рдПрдХ рджреЗрд╢рджреНрд░реЛрд╣реА рд╣реИред рдХреГрдкрдпрд╛ рддрдп рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ рдХрд┐ рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрднреА рднреАред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ NPM рдиреЗ рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╣рдо рдпрд╛рд░реНрди рдореЗрдВ рдЪрд▓реЗ рдЧрдПред рдпрд╣ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХрд┐ "package.json рдФрд░ рдпрд╛рд░реНрди .lock рдХреЛ рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" рдирд┐рд░рд░реНрдердХ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдХреБрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрддрдирд╛ рд╣реА рдЖрд╕рд╛рдиред

рдЪрд▓реЛ, рд░рдЦрд╡рд╛рд▓реЗред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдирдлрд╝рд┐рд▓реНрдЯрд░реНрдб рдФрд░ рдЧрд▓рдд рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдмреБрджреНрдзрд┐рдорд╛рди рдмрд╛рддрдЪреАрдд рдмрдВрдж рдХрд░реЗрдВред

рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ yarn рдиреЗ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рддреЛрдбрд╝ рджрд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ require рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ ./node_modules рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╛рд░реНрди рдЬрдм рдореИрдВ yarn install рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдЙрджрд╛рд╣рд░рдг рдореЙрдбреНрдпреВрд▓ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдзрд┐рдХ "рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╕реНрд░реЛрдд" рдкреИрджрд▓ рд╕реЗрдирд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛: рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЯреАрдо рдЙрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЯреАрдо (рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ) рд╡рд╣ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИред

рдпрд╣ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдореИрдВ рдХреЛрдгреАрдп рд╢реИрд▓реА рдХреЗ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП рдХреЛрдбреЗрд▓реАрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдЯреАрдо рдХреЗ рдмрд╛рдХреА рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЕрдм рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕реЗ рдореЗрд░реЗ рдпрд╛рд░реНрди рд▓реЙрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдмрд╕ рдпрд╣ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░рд╛ рдпрд╛рд░реНрди рд▓реЙрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ рдпрд╛ рдПрдирдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрд▓реЗ рд╣реА рдореЗрд░реА рдЯреАрдо рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдпреЗ рджреЛрдиреЛрдВ рд╣реА рднрдпрд╛рдирдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдпрд╣ 2018 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рддрдХ рдЬреЛрдбрд╝реА рдирд╣реАрдВ рдЧрдИ рд╣реИред

рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдХрд░ рдФрд░ package.json / *.lock рд╕рд╣реЗрдЬрдХрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИ рдФрд░ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдереА, рддреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рддреА рд╣реИ рдпрд╛ рд╡рд╛рдкрд╕ рд▓реЗрддреА рд╣реИред рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп yarn рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ adding рдлрд┐рд░ рд╕реЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ "рдмрд┐рд▓реНрдХреБрд▓" рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдПрдХрд▓ рдмрд┐рдВрджреБ ( package.json ) рдХреЛ рд╕рдЪ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реАрдирд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ package.json (рднрд▓реЗ рд╣реА рдпрд╣ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣реЛ) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддреА рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рддреЛ рдХреНрдпрд╛ рдпрд╛рд░реНрди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЯреЛрдкреИрдХ рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ?

pinging @kittens рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ ...

рдЗрд╕ рдмреАрдЪ, рдореИрдВ scripts рдЕрдиреБрднрд╛рдЧ package.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

"scripts": {
  "install-sneaky-package": "npm install -g sneaky-package && cp -r $(npm root -g)/sneaky-package ./node_modules/sneaky-package"
}

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛рд░реНрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, npm5 рдореЗрд░реЗ рдЬреАрд╡рди рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

рдФрд░ .bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд┐рдорд▓рд╛рдЗрди рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред ;)

рдореЗрд░реЗ рд▓рд┐рдП chmod 444 package.json рдФрд░ yarn add XXXX --no-lockfile рдХрдо рд╕реЗ рдХрдо рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдРрдб рдПрдХ (рдЕрдкреЗрдХреНрд╖рд┐рдд) рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛрдбрд╝рд╛ рдореЙрдбреНрдпреВрд▓ рдмрд╛рдж рдореЗрдВ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╕рд╣рдХрд░реНрдореА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рдореЗрдВ рдЬрд╛рд░реА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдкреАрдпрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред

рдореБрдЭреЗ рдХрднреА-рдХрднреА рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ why-is-node-running ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдПрдХрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдПрдХ --no-save рд╡рд┐рдХрд▓реНрдк рдореБрдЭреЗ рдореЗрд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рднреВрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореИрдВ Lerna рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ CI рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ _only_ Lerna рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдмрдиреА рд╣реИ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реИрдз рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ?

рдпрд╣ рдореБрдЭреЗ рдХреБрдЫ рдЪрд░рдгреЛрдВ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред
рдореЗрд░рд╛ node_modules ред рд╡реИрд╕реЗ рднреА .ignignore рдореЗрдВ рд╣реИред

рдХреЗ рдмрдЬрд╛рдп:

git clone external-package (needed for temp testing only)
yarn install
yarn link

рдореЗрд░реЗ рдореВрд▓ рд░реЗрдкреЛ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ
yarn link external-package

рдмрд╕:
рдореВрд▓-рд░реЗрдкреЛ:
yarn install external-package --no-save

рд╣рдорд╛рд░реА рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ nsp рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛-рдЪреЗрдХ.xml рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЗрд╕ рд╕рд░рд▓ рдЯреВрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЛ рдкреИрдХреЗрдЬ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдЯреИрдЧреНрд╕ рдХреЛ рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git checkout ${BRANCH_NAME} рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдФрд░ рдпрд╣ рдореЗрд░рд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рдУрдЖрд░рдЬреА рдореЗрдВ рджреЗрд╡ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЖрдк рдХреБрдЫ рдЕрдореВрд░реНрдд рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕реЗ рд░реЛрдХред

рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░, рдХреНрдпреЛрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ PR рдореЗрдВ --no-save рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ?

рдХрдИ рдмрд╛рд░ рдореИрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдФрд░ рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдпрд╛ рдЧрдпрд╛ @types/sinon рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░рд╛ tsc рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдореИрдВ рдЕрдкрдиреЗ рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП @types/sinon рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ yarn add @types/[email protected] --no-save рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рдЦ рд╕рдХреВрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рд╕рд┐рд░реНрдл npm рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВред рд╕реБрдкрд░ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрддреА рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдирд┐рд░реНрднрд░рддрд╛ (рдПрдкреАрдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕) рдХрд╛ рдПрдХ рдЙрддреНрдкрд╛рджрди рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╣реА рдордВрдЪ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдПрдХ рд╣реИрдХ рд╣реИред рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рднреА рджреЗрд╡ рдорд╢реАрдиреЛрдВ рдкрд░ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред yarn add ... --no-save рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╣рдо рдкреИрдХреЗрдЬ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рд╕рд╛рдл-рд╕реБрдерд░реЗ рдврдВрдЧ рд╕реЗ рддреИрдирд╛рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

cc @kittens @hpurmann

рдХреГрдкрдпрд╛ рдпрд╛ рддреЛ рдЗрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░реЗрдВред рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдареЛрд╕ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдФрд░ рд╕рдореБрджрд╛рдп рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдмрд╕ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдРрд╕реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдзрдиреНрдпрд╡рд╛рджред

haha, рдЕрднреА рднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, niiiiice

рдЖрдк рдРрд╕реА рдЪреАрдЬрд╝ рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдиреЗ рдареАрдХ рдпрд╣реА рдмрд╛рдд рдХрд╣реА рдереА, рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рд▓реЙрдЬрд┐рдХ рдорд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ usecases рд╣реИрдВ, рддреЛ рд╕рд╣реА рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЭрдВрдбрд╛ рд╣реИ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╛рд░реНрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ (рдЙрд░реНрдл рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред

@ рдХрд┐рдЯрдиреЗрдВрд╕
рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдИ рдкреИрдХреЗрдЬ рд╣реИрдВ рдФрд░ рдЗрдирдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдЙрдк-рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╣рдХрд░реНрдореА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдореБрдЭреЗ рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдбрд┐рдк рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ред
рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рддреБрдЪреНрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП npm рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди, --no-save рд╕рдорд╛рди рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рд╕рдореБрджрд╛рдп рдорд╛рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдЗрд╕рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рд╣реА рдЖрдк рдпрд╛рд░реНрди рд╕реНрдерд╛рдкрд┐рдд рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рд╕реНрдерд╛рдиреАрдп рдкреИрдХреЗрдЬ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред)
рдзрдиреНрдпрд╡рд╛рдж

рд╣реИрдВрдбреА рдЯреНрд░рд┐рдХ yarn add --dev pkg && yarn remove pkg ред рдпрд╣ рд╡рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рдЗрд╕рд╕реЗ рдЕрдЫреВрддрд╛ рдерд╛, рд▓реЙрдХ рд▓реЙрдХрд╛рдЗрд▓ рд░рд╣рддрд╛ рд╣реИред

рдпрд╣ @Legends рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЬреЛрд░ рджреЗрдиреЗ рд▓рд╛рдпрдХ рд╣реИ:

рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ рдФрд░ yarn link рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЬрд╣рд╛рдБ рдХрд╣реАрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣рд╛рдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

cd /third-party
yarn add foo
cd node_modules/foo
yarn link

cd /my-project
yarn link foo

@silentorb рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, imhoред add + remove рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╣реИ рдЬреЛ --no-save рд╕рд╛рде npm рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдЫреВ рд░рд╣рд╛ рд╣реИ - рдорддрд▓рдм yarn remove рдмрд╛рдж рднреА рдРрд╕рд╛ рд╣реА рд╣реИред
рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрджрд┐ рдЖрдк рдЙрд╕ рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд╛рдпрд░, рд▓рд┐рдВрдХрд┐рдВрдЧ рдФрд░ рдЖрджрд┐ рдмрдирд╛рдирд╛ рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдорд╛рдорд▓реЗ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП? рд╕реБрдВрджрд░ рдЕрдЬреАрдм рдпрдХреАрди рдХреЗ рд▓рд┐рдП?

@ рд╣рд╣рдореНрдорди @ рдХрдЯрд┐рдЯреЗрдВрд╕

рддреЛ рд╕рд╣рдХрд░реНрдореА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЬ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЕрднреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?

рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рд╣рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЖрдпрд╛рдд рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?

Https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb/package.json рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рд╣рд╛рдВ рд╣реИ

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВред

рдЬреИрд╕реЗ рд╕реАрдЖрдИ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдореИрдВрдиреЗ рдХреБрдЫ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯрд░ рдЬреЛрдбрд╝реЗред рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ package.json рдирд╣реАрдВ рд▓рд╛ рд╕рдХрддрд╛, рдлрд┐рд░ NPM рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рд╣реЗрдЬреЗрдВ рдпрд╛ рди рдмрдЪрд╛рдПрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдПред

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ --no-save рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЧрд╣рди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕реНрдЯреАрд▓ рдореИрди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╢рд╛рдпрдж рд╡реЗ рдореБрдЭреЗ рд╕рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рд╣рдо рдПрдХ рд╕рдордЭреМрддрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред @ рдХрд┐рдЯрдиреЗрдВрд╕

(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред)

рдЖрдзреБрдирд┐рдХ рдиреЛрдб- рдФрд░ рд╡реЗрдм-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдереЛрдбрд╝рд╛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред рдФрд░ рдлрд┐рд░ рднреА, рд╣рдо рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд╡рдЪрд╛рд▓рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдпрддрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдЯреМрддреА рдФрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рд▓реНрдб рдЬреИрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред

рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ, рдФрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрд╕рдВрдЧрддрддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рдХреЗ рдПрдХрд▓ рд╕реНрд░реЛрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдмрддрд╛рддреЗ рд╣реБрдП, node_modules рд╕реНрд╡рдпрдВ рдЙрди рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╣ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╕рдВрд╕реНрдХрд░рдг-рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рдпрд╣ 'рдХреНрдпреЛрдВ' рдкрд╣рд▓реВ рдХреЛ рдПрдирдХреЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ package.json рдФрд░ yarn.lock ред

рдпрд╛рд░реНрди рд╣рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ node_modules рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рд╕рдорд╛рдкреНтАНрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдХреБрдЫ рдЧрд╛рд░рдВрдЯреА рдорд┐рд▓рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдбреБрдкреНрд▓реАрдХреЗрд╢рди рдФрд░ рд░рд┐рдкреНрд░реЛрдбреНрдпреВрд╕рд┐рд╡ рдмрд┐рд▓реНрдбред рдпрджрд┐ рд╣рдо package.json рдФрд░ yarn.lock рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ node_modules рдореЗрдВ рдЪреАрдЬреЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрди рдЧрд╛рд░рдВрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдРрд╕рд╛ рдЕрдирдЪрд╛рд╣реА рдЕрдиреБрдмрдВрдз рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЬрдм рд╡реЗ рдЗрд╕реЗ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЬрдм рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдпрд╛рд░реНрди рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдирд╛ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреИрд░ рдореЗрдВ рдЧреЛрд▓реА рдорд╛рд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдПрдХ рдмреБрд░рд╛ рдбрд┐рдЬрд╛рдЗрди рджрд░реНрд╢рди рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ , рдореИрдВ рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ:

  • рд▓рдЧрддрд╛ рд╣реИ рдпрд╣рд╛рдБ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬрд░реВрд░рдд рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрдИ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ 'рдЕрдВрдЧреВрдареЗ рдКрдкрд░' / 'рдиреАрдЪреЗ рдЕрдВрдЧреВрдареЗ' рдЕрдиреБрдкрд╛рддред рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХрддрд░рдлрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рдордиреЗ рджрд░реНрд╢рдХреЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯ рдЬрд┐рдж рдпрд╛рд░реНрди рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдмрдирд╛рддреА рд╣реИред

  • рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ yarn.local.lock ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ .gitignore , рдФрд░ рдпрд╣ --no-save рдзреНрд╡рдЬ рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд░рдЦреЗрдЧрд╛ред

    yarn.lock рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, 'рд╕реНрдерд╛рдиреАрдп' рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреЗрдбрд╝ рдХрд╛ рдХрдЯрд╛рд╡ рдФрд░ рд╕рдкрд╛рдЯ рд╣реЛрдирд╛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИред рд╕реНрдерд╛рдиреАрдп рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдореБрдЦреНрдп рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдФрд░ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдЯреМрддреА) рд▓реЗрдХрд┐рди рдЖрд╕рдкрд╛рд╕ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдИ рд╕рдХрд░реНрдордХ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрднрд░рддрд╛ node_modules рдореЗрдВ рд╕рдорддрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред

    рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде, рдпрд╛рд░реНрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рд░реЗрдкреЛ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╛рдорд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдФрд░ рд╣рдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рд▓реНрдб рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред (рдПрдХ package.local.json devDependencies рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╕рд╛рде рдХрдорд░рд╛ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред)

  • рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХреЗрдВ, рдХрдо рд╕реЗ рдХрдо рдЙрдирдореЗрдВ рд╕реЗ рддреАрди рдХреЛ рдКрдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рдПрдХ рд╣реА рдЧрд╛рд░рдВрдЯреА рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рд░реНрди рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдмреБрд░рд╛ рд╣реИред

рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд╛рдпрдХ рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ: рдореИрдВ REPL рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ рдореБрдЭреЗ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ ../other-project/data/xyz.json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ json рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╣ рдЪреАрдЬ рдЕрдиреНрдп рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрдереЛрдВ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдареАрдХ рд╣реИ, рдпрд╣ рдЯреВрдЯрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдмрд╕ рдореБрдЭреЗ рдмрдЪрдд рдХреЗ рдмрд┐рдирд╛ node_modules рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдиреБрдЪрд░ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкреНрд░рддрд┐ рдХрд┐рддрдиреЗ рдкреНрд░рддрд┐рд░реЛрдзреА рд╣реИрдВред

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рд░рд╡реИрдпрд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИред рдореИрдВ рдХрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд▓рдЧ рдЗрди рдореЗрдВ рд╣рд╛рд░реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ peerDependencies рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдм рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рдпрд╣ рдореБрджреНрджрд╛ рдкрд╣рд▓реЗ рд╣реА рдЯрд┐рдкреНрдкрдгреА рдХрд░ рдЪреБрдХрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрдк рдмрд┐рд▓реНрд▓реА рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ package.json рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдлрд╝рд╛рдЗрд▓? рдЦреИрд░, рдЖрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ peerDepencies devDependencies рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреА рднрдпрд╛рдирдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо npm рдЖрдкрдХреА package.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

@ рд╣рд╣рдореНрдорди

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕рдореБрджрд╛рдп рдХреЛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЖрдкрдХреЛ рдХреЛрдИ рдПрд╣рд╕рд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдкреАрдЖрд░ рдХреЛ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд░рд▓ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ?

рдореБрдЭреЗ рд╢рд╛рдпрдж рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдареАрдХ рдЗрд╕рдХреЗ рдмрд╛рдж @viveleroi рдиреЗ рдЕрдкрдиреЗ рдХрд╛рдлреА рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ (рдЬреЛ рдЖрдк рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓рдЧрддреЗ рд╣реИрдВ) рдХреЛ рд╕рдордЭрд╛рдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдЙрдирдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЕрдВрдЧреВрдард╛ рд▓рдЧрд╛рдпрд╛, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдорди рдмрджрд▓ рд▓рд┐рдпрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд▓реЛрдЧ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд░рдЦрд╡рд╛рд▓реЗ рд╣рд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлреВрд▓рд╛ рд╣реБрдЖ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рднреА рддрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдиреБрд░рдХреНрд╖рдХ рдирд╣реАрдВ рд╣реВрдВред

@Vheissu yarn add --peer <dep> рд╕рд╛рде рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╛рд░реНрди рдРрдб - рд╡реЗрдкрд░рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ UNTIL рдЖрдк рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдореМрдЬреВрджрд╛ рдкреАрдпрд░ рдбрд┐рдк рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрдврд╝рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд╕рдВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдЬ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдХреЛрдИ рднреА рдХреЛрдб рд╕реАрдзреЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдпрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@ рдмреНрд░реЗрдВрдбрди-рд╣рд░реНрд▓реЗ @suyanhanx рдХреА рддрд░рд╣ , рдореЗрд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реАрдЖрдИ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВред
рдореИрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдореЗрдВ node_modules рдлреВрдВрдХрдиреЗ рдХреА рдЬрд░реВрд░рдд рди рдкрдбрд╝реЗ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рдордп рдФрд░ рд╕реНрдерд╛рди рдЦрд░реНрдЪ рдХрд░рдирд╛ рдкрдбрд╝реЗред

рдкреИрдХреЗрдЬ рдЬреЛ CI рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ:

  • CI рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдг: рд╕рд┐рдореЗрдВрдЯрд┐рдХ-рд░рд┐рд▓реАрдЬрд╝, рдЧреНрд░реАрдирдХреАрдкрд░-рд▓реЙрдХрдлрд╝рд╛рдЗрд▓
  • рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЙрдкрдХрд░рдг: рдХреЛрдбреЗрд╕реА-рдХрд╡рд░реЗрдЬ, рдХрд╡рд░реЙрд▓
  • рд╕реАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЯреВрд▓: рдЬреЗрд╕реНрдЯ-рдЬреВрдирд┐рдЯ, рдЖрджрд┐ред

рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

yarn link рдЕрднреНрдпрд╕реНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд▓рд┐рдВрдХ рдХреА рдЧрдИ рдордВрдЬрд┐рд▓ - рдпреЗ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ package.json рдмрд╕ рдЗрддрдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╛ рддреЛ yarn link рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдпрд╛ рдЧрдВрддрд╡реНрдп package.json рдореЗрдВ рдЧрдВрддрд╡реНрдп рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рдЧреВрдврд╝ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ yarn.lock рдФрд░ package.json рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЕрдЧрд░ рдореИрдВрдиреЗ --no-save рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рддреЛ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╛рдж рдХреЗ yarn рдкрд░ рдорд┐рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ yarn рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реЛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ --no-save рдЭрдВрдбрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрджрд┐ рдореИрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ, рдФрд░ рдпрд╣ рдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЦреБрдж рдХреЛ рджреЛрд╖реА рдард╣рд░рд╛рдирд╛ рд╣реИред :рдореБрд╕реНрдХреБрд░рд╛рдУ:

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛?
рдореИрдВ 64-рдмрд┐рдЯ рдЬреАрддрдиреЗ рд╡рд╛рд▓реА рдорд╢реАрди рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
рдЙрддреНрдкрд╛рджрди рдорд╢реАрди 32-рдмрд┐рдЯ рд╣реИред

рдЬрдм рддрдХ рд╣рдо рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдиреЛрдб-рдПрд╕рдПрдПрд╕ рдирд┐рд░реНрднрд░рддрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред

рдПрдХ рджреЗрд╡ рдорд╢реАрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Package.json рдпрд╛ рдпрд╛рд░реНрди рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ред
рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ 64-рдмрд┐рдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдиреЛрдб-рдПрд╕рдПрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬрд╕рди рдФрд░ рдпрд╛рд░реНрди рдмреИрд▓

рдореИрдВ VSCode рдореЗрдВ рдмреЗрд╣рддрд░ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП package.json / yarn.lock рд▓рд╛рдн рд▓рд┐рдП рдмрд┐рдирд╛ рдЧреИрд░-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ @types/* рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдореИрдВ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
Antd рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ @ рдкреНрд░рдХрд╛рд░ / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛@16.8.12 рдЕрджреНрдпрддрди рдХреЗ рдХрд╛рд░рдг рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдореЗрдВ Antd рдпрд╣ рддрдп рдХрд░реЗрдЧрд╛ред
рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдпрд╛рд░реНрди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ @ @ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП / type @ рд░реАрдЯ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред

Package.json рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреИрдХреЗрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рдЬрдм рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВред

рдХрдерд┐рдд рддреМрд░ рдкрд░ рдкреИрдХреЗрдЬ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдФрд░ рдкреИрдХреЗрдЬ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ред рдЬреБрдЭрд╛рд░реВ рд╕рдВрдШрд░реНрд╖ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИред рдореИрдВ рдПрдХ рд░рд┐рдПрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВред рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ react рдФрд░ react-dom рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреАрдЫреЗ рдФрд░ рдЖрдЧреЗ ( @next ) рд╕рдВрдЧрдд рд╣реИрдВред рдореИрдВ рдиреАрдЪреЗ рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдпрд╛рд░реНрди рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╛рд░реНрди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

"test:backwards": "npm i [email protected] [email protected] --no-save && npm test",
"test:forwards": "npm i react<strong i="9">@next</strong> react-dom<strong i="10">@next</strong> --no-save && npm test",
"test:latest": "npm i react<strong i="11">@latest</strong> react-dom<strong i="12">@latest</strong> --no-save && npm test",
"test:compat": "npm run test:backwards && npm run test:forwards && npm run test:latest"

рдореИрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреЗ package.json рд░реВрдк рдореЗрдВ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЖрджреЗрд╢ ( pack publish ) рдХреЛ рдЕрд╕реНрдерд┐рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рдХрд░ рджреЗрдЧрд╛ред

рдореИрдВ рдЕрдкрдиреЗ CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдкрд░реАрдХреНрд╖рдг рдкреИрдХреЗрдЬ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдПред рдкреИрдХреЗрдЬ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреВрдиреЗ рдХреЗ рд▓рд┐рдП (рд╕рдВрднрд╡рдд: рдПрдХ рдлрд╝рд╛рдЗрд▓ рдорд╛рдЙрдВрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ)ред
рдпреЗ рджреЗрд╡ рдШрдЯрдХреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред
рджреЗрд╡ рдорд╢реАрдиреЛрдВ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╕реАрдЖрдИ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред

рдпрд╣ рд╕рд┐рд░реНрдл npm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╛рд░реНрди рдХреЛ npm рдкрд░ рдЪрд┐рддреНрд░рдг рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╛рд░реНрди рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдПрдирдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдпрд╛рд░реНрди рдХреЗ рд╡рд╛рджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдирдкреАрдПрдо рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд╣реА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдирдкреАрдПрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХреБрдЫ рдзреНрд╡рдЬ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛рдПрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рддреБрдо рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реЛ ? рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 3 рд╕рд╛рд▓?

рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛: рд╣рдо рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдмрджреНрдз рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ npm рдкреИрдХреЗрдЬ ( git-hoooks ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЯреАрдо рдХреЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдиреЗ рдиреЛрдб рдЗрдирд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреЛрдбрд╝рдирд╛ рдХрдо рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬреАрдкреАрдЯреА-рд╣реБрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд / рд╣рдЯрд╛рдХрд░ рдХреНрд╖рдгрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдкреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рдХрд╛рдо рдХреЛ рдЬрд╛рдирдХрд░ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИ, рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред

рдЕрдЧрд░ рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╛рд░реНрди_рд▓реЙрдХ рдЕрдм рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдмреБрд░рд╛ рд╣реИ? рдХреНрдпрд╛ рдореМрдЬреВрджрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛рд░реНрди рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реИ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдиреЗ рдЬреЗрдПрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╕реЗрд╡рд╛ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рддреБрдо рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реЛ ? рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 3 рд╕рд╛рд▓?

@spanasik рдФрд░ @Ryuurock : рдХреГрдкрдпрд╛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдирдореНрд░

рдпрд╣ "3 рд╕рд╛рд▓" рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рд┐рдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ - рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░рдХреНрд╖рдХ рдЕрд╕рдВрдмрджреНрдз рд░рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢реБрджреНрдз рд▓рд╛рдн рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рджреЗрдВред

@NickHeiner рдпрд╣рд╛рдВ 10 рддрд░реНрдХреЛрдВ рдХреА рд╕реНрдХреНрд░реАрди рд╣реИред рдФрд░ рдореБрдЦреНрдп рдмрд╛рдд рдЬреЛ рд╣рддрд╛рд╢рд╛ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИ, рд╡рд╣ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рд░реНрд╡рд╛рд╣рдХ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрд░реНрдХреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЬрдм рд▓реЛрдЧ "рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рджреЗрдВ"ред рдФрд░ рдЬрдм рд▓реЛрдЧ рдирд┐рд░рд╛рд╢ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмреЗрд╢рдХ рд╡реЗ рдЕрдкреНрд░рд┐рдп рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдкреВрд░реА рдмрд╛рдд рдХреЛ рджреЛрд╖ рди рджреЗрдВред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЕрдиреБрд░рдХреНрд╖рдХ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рд╕рдореВрд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░реБрдЪрд┐ рд╣реИред рддреЛ рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ @spanasik рдФрд░ @Rurourock рдХреЛ рдмрд╕ "рдПрдХ рддрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП" рдЕрдиреБрдЪрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХреА рддрд░рд╣ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдФрд░ рдЬрдм рд▓реЛрдЧ рдирд┐рд░рд╛рд╢ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмреЗрд╢рдХ рд╡реЗ рдЕрдкреНрд░рд┐рдп рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдкреВрд░реА рдмрд╛рдд рдХреЛ рджреЛрд╖ рди рджреЗрдВред

рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВред рдпрд╣ рдЕрд╢рд┐рд╖реНрдЯрддрд╛ рдЕрднреА рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрджрдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рди рд╣реА рд╡рдпрд╕реНрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╡реНрдпрд╡рд╣рд╛рд░ред рдЕрдкрд╡рд┐рддреНрд░ рд╣реЛрдирд╛ рдЗрд╕ рдмрд╛рдд рдХреЛ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИ: "рдзрд╛рдЧрд╛ рд╕рд┐рд░реНрдл рдЯреНрд░реЙрд▓реНрд╕ рд╣реИ"ред

рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд░рдЪрдирд╛рддреНрдордХ рддрд░реАрдХреЗ:

  1. рдЕрдиреНрдп рдЪреИрдирд▓реЛрдВ рдкрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЕрдиреБрдЪрд░ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВ (рд╢рд╛рдпрдж рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ) рдФрд░ рдЙрдирд╕реЗ рдХрдо рд╕реЗ рдХрдо рдпрд╣рд╛рдБ рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕рд╣рдордд рди рд╣реЛрдВред
  2. рдХрд╛рдВрдЯрд╛ / рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдпрд╛рд░реНрди рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╣реИрдВрдбреА рдЯреНрд░рд┐рдХ yarn add --dev pkg && yarn remove pkg ред рдпрд╣ рд╡рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рдЗрд╕рд╕реЗ рдЕрдЫреВрддрд╛ рдерд╛, рд▓реЙрдХ рд▓реЙрдХрд╛рдЗрд▓ рд░рд╣рддрд╛ рд╣реИред

рдкрд░реАрдХреНрд╖рд┐рдд - рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдПрдбрд┐рдВрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ 'рдЖрд╡рд╢реНрдпрдХрддрд╛' рд╕реЗ рднрд░реЗ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рдЗрди рдРрдб-рдЗрдиреНрд╕ рдХреЛ рдбрд┐рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдореИрдВ 'рдпрд╛рд░реНрди рдРрдб рдорд╛рдп-рдРрдб-рдЗрди' рдХрд░рддрд╛ рд╣реВрдБ рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ package.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдХрд╛рд▓ рджреЗрддрд╛ рд╣реВрдБред рдореЗрд░реА рдХреНрд▓рд╛рдЙрдб CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд░ рдореИрдВ 'npm i' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрдиреНрд╣реЗрдВ (рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП) рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд░ рдореИрдВ npm рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдм npm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдирдХреА рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИ (рд╕рддреНрдп рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рд╕рд╡рд╛рд▓ рдХрд╛ рд░рдЦрд╡рд╛рд▓реЗ рд╣реИрдВ:

  • рдЖрдк рдЗрддрдиреЗ рдЕрд╕рдВрдЧрдд рдХреНрдпреЛрдВ рд╣реИрдВ?
  • рд╣рд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рджрд░реНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛?

    • рд╡рд╣ рд╣реИ: рдпрд╣ рддрдп рдХрд░рдирд╛ рдХрд┐ рд╣рдо рд╕рднреА рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рд░рд╣рдирд╛! рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд╕рдЪреНрдЪреЗ рдмрдиреЗ рд░рд╣реЛ!

рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдЪреНрдЫреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдЪреНрдЫрд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреНрдпрд╛ рд╣реИ ред рдФрд░ рд╣рдореЗрд╢рд╛ 'package.json' рдлрд╛рдЗрд▓ рдХреЛ рдЫреВрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ - рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдореМрдЬреВрдж рд╣реИрдВ рдЬрд╣рд╛рдВ 'рдпрд╛рд░реНрди' рд╕рд┐рд░реНрдл рдЗрд╕ рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдг рдХрд╛рд░реНрдп рддрдХ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рд░реНрди рдкрд╕рдВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рд╕рд░рд▓ рдФрд░ рддреЗрдЬ рд╣реИ ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЕрдиреБрдЪрд░ рдПрдХ рдРрд╕реА рд▓рдбрд╝рд╛рдИ рд▓рдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдвреАрд▓реЗ рд╣реЛрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдХреНрдпреЛрдВрдХрд┐ рд╕рдореБрджрд╛рдп рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдПрдирдкреАрдПрдо рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрддрд╛ рд╣реИред

рдЪрд▓реЛ рддрд╛рдкрдорд╛рди рдХреЛ рдереЛрдбрд╝рд╛ рдиреАрдЪреЗ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреЛ рднреА рдШреГрдгрд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рд╡реЗ рдореБрдлреНрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

15 рдЬрдирд╡рд░реА, 2020 рдХреЛ рдмреБрдз рдкрд░, 23:17 рд╣рд╛рдЬрд╝рд┐рдо рдпрд╛рдорд╛рд╕рд╛рдХреА рд╡реБрдХреЗрд▓рд┐рдХ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдШреГрдгрд╛ рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИ рдХрд┐ рдпрд╛рд░реНрди рдореБрдЭреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ
рдЕрдкрдиреЗ рджрдо рдкрд░ рдЪреАрдЬреЛрдВ рдХреЛ рддрдп рдХрд░реЗрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдореЗрд░реЗ рдЙрдкрдХрд░рдг рдореБрдЭреЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХреИрд╕реЗ рд╣реВрдВ
рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд░реА рдЦреБрдлрд┐рдпрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдФрд░
рдЕрднреА рддрдХ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

рд╕рд╣реА рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдФрд░ рдпрд╣ рдХрд┐ рдХрднреА рднреА рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рдЙрдиреНрд╣реЗрдВ рддреЛрдбрд╝ рджреЗрдирд╛ рднреЛрд▓рд╛ рд╣реИред "рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ" рдФрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИ
"рдХрд░реЛ рдпрд╛ рдорд░реЛ"ред рдУрд▓рд┐рд╡рд░ рд╡реЗрдВрдбреЗрд▓ рд╣реЛрдореНрд╕ рд╕реАрдирд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ:

рдЬрд╡рд╛рди рдЖрджрдореА рдирд┐рдпрдореЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреВрдврд╝рд╛ рдЖрджрдореА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAGKTAZSB4FNAIFLZIL547LQ6ACZNANCNFSM4CVUKFMA
ред

рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдмрдирд╛рдУ, рдХреЛрдИ рднреА рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдкрдиреЗ рддрд░реНрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреНрд░реЛрдзрд┐рдд рди рд╣реЛрдВ:

рдпрд╛рд░реНрди рдореБрдЭреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╛рд░реНрди рдЖрдкрдХреЛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛ рд╣реИ (рдореБрдлреНрдд рдореЗрдВ) рдФрд░ рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдФрд░ рдХрд░реЗрдВред

@foxbunny рдореИрдВ рдЖрдкрдХреА рдШреГрдгрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рд╕рд░рд╛рд╣рдирд╛

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдЪрд┐рдд рд╣реИ рдФрд░ рд╕рд┐рд░реНрдл рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдШреГрдгрд╛ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рднрд╛рд╖рд╛ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдирдореНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдЯреВрд▓ рдмрдирд╛рдпрд╛ рд╣реИред рдЖрдк рд╕рдореНрдорд╛рдирдЬрдирдХ рд╣реЛрддреЗ рд╣реБрдП рднреА рд░рдЪрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

@whitecolor рдЯреАрдо рдХреЛ рдПрдХ рдЕрдВрдХ рдорд┐рд▓рд╛ рд╣реИред рд╡рд╣ рд╡рд┐рдХрд▓реНрдк рд╣реИ - рджрд╛рд╕ рдмреЗрд╡рдХреВрдл рд╣реИред рдпрд╛рд░реНрди рдЧрд╛рд░рдВрдЯрд┐рдпрд╛рдВ рдиреЛрдб_рдореЙрдбрд▓реНрд╕, рдкреИрдХреЗрдЬ.рдЬреЙрди рдФрд░ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рддреА рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ .... npm --save рдЦрддрд░рдирд╛рдХ рд╣реИред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдХрдИ рдмрд╛рд░ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рдпрд╛

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд░реЛрдХреЗрдВ

рдпрд╛ рдХреИрд╕реЗ рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╕ рдЙрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЙрдирдХреЗ рд╕реЛрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмреЗрд╣рддрд░ рдФрд░ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ

рдореИрдВ рд╣рдорд╛рд░реЗ рдРрдк рдХреА рдЙрдк-рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдореИрдВ рдЗрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ yarn link рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ
рдореИрдВ рддрдм рд╣рдорд╛рд░реЗ рдРрдк рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдореИрдВ рд╣рдорд╛рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ
yarn install (wtf рдирдВрдмрд░ 1) рдХреЗ рдмрд╛рдж рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ
рдлрд┐рд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдмрд╕ рдЗрд╕реЗ рдРрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдмрд┐рдирд╛ рдЬрд▓реНрджреА рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдВ рддрд╛рдХрд┐ рдореИрдВ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреВрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд╛рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рд▓реЗрдХрд┐рди - рдирд╣реАрдВред

рдзрдиреНрдпрд╡рд╛рдж

рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдП рдЧрдП рд╕рдореБрджрд╛рдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдПрдХ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╕реБрд╕рдВрдЧрдд рджрд░реНрд╢рди рдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреАрдЪрдбрд╝ рдХреА рдПрдХ рдЧреЗрдВрдж рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХрднреА-рдХрднреА рдмрддрд╛рдирд╛
рд▓реЛрдЧ "рдирд╣реАрдВ"ред рдпрджрд┐ рдЖрдк рдЕрд╕рд╣рдордд рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рд╣реИ
рдкреНрд░рдмрдВрдзрдХ, рдЬреИрд╕реЗ рдпрд╛рд░реНрди рдиреЗ npm рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

Tue, Mar 3, 2020 рдХреЛ 03:53 рдмрдЬреЗ Artur Kwiatkowski рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдП рдЧрдП рд╕рдореБрджрд╛рдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAGKTA7WL4R3R47HBU6EPI3RFTVTLANCNFSM4CVUKFMA
ред

рдореИрдВ Lerna рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ CI рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ _only_ Lerna рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдмрдиреА рд╣реИ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реИрдз рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ?

^ рдореЗрд░реА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА - рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдЗрддрдиреА рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЙрдбрд╝рд╛ рджреЗрдЧрд╛ - рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдИрдореЗрд▓ рджреЗрдЦрдиреЗ рд╕реЗ рдЦреБрд╢ рд╣реИред

рдореИрдВ рдпрд╣рд╛рдБ рдХреЗ рд░рдЦрд╡рд╛рд▓реЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реВрдБ:

  1. рдореИрдВ рдЕрдкрдиреЗ рддрд░реНрдХ рд╕реЗ рдЕрд╕рдВрдмрджреНрдз рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рддрд░реНрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рди рдмрддрд╛рдХрд░ рд░рдЦрд╡рд╛рд▓реЗ рд╡рд┐рдирдореНрд░ рдереЗред
  2. рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдХреЛрдИ _does_ рдПрдХ рдкреАрдЖрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдлреАрдЪрд░ рдХрд╛ рдирд┐рд░рдВрддрд░ рд░рдЦрд░рдЦрд╛рд╡ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдмреЛрдЭ рд╣реЛрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдореБрдЦреНрдп рдЙрддреНрдкрд╛рдж рдмрдирд╛рдП рд░рдЦрдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧрд╛ред
  3. рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝реАрдЪрд░ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдпрд╛рд░реНрди рдХреЗ рдирдП рдЬреБрдорд▓реЛрдВ рдФрд░ / рдпрд╛ рдЕрдиреНрдпрдерд╛ рдпрд╛рд░реНрди рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдХреБрд╢рд▓ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЖрдЧреЗ рдЪрд▓рдХрд░ 2 рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░, рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рддрд░реАрдХрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП yarn-add-no-save рдмрдирд╛рдпрд╛ред рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

$ yarn add yarn-add-no-save --dev
# or
$ yarn global add yarn-add-no-save

рдПрдХ рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдмрд╕ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$ yarn add-no-save <packages> # (yarn-add-no-save when installed globally)

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ peerDependencies рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ,

$yarn add-no-save --help

рдиреЛрдЯ: рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реЗрдЬрдирд╛ рд╡рд┐рдбрдВрдмрдирд╛ рд╣реИ рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдореЗрд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рд╕рд╣рд╛рдпрдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╣рдХрд░реНрдореА рд╕рдорд░реНрдердиред рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдЪреНрдЫреЗ рддрд░реНрдХ рд╣реИрдВред рдпрд╣ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░рдиреЗ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЛрдЧ рдЗрд╕реЗ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдзреНрд╡рдЬ рдХреЗ рдкреАрдЫреЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреБрдЫ рдЕрдиреНрдп рдХреА рддрд░рд╣, рдореБрдЭреЗ рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде CI рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕рд╣реЗрдЬрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ ред рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдпрд╣рд╛рдБ рд╕рдордЭрдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реИред

рдореБрдЭреЗ yarn install xxx рддрдм yarn remove xxx ред

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ usecase рдХрднреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рдореБрдЭреЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ - рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЧреБрдЪреНрдЫрд╛ рд╣реИред рдпреЗ рд╕рднреА рд╕рдорд╛рди рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд░реВрдЯ рд╕рд░реНрд╡рд┐рд╕рд┐рдВрдЧ рдЙрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдиреАрдп рдкреИрдХреЗрдЬ рдХреЛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╛рд░реНрди рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдореВрд▓ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд░реВрдЯ package.json рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛред рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдПрдХ рдкреВрд░реНрдг рдЪрдХреНрд░ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЙрди рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреНрдпрддрди рд░реВрдЯ package.json рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред рдЕрдм рдЬрдм рдпрд╣ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реАрдЖрдИ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЬреЛ рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рд╡реЗ рдЕрдиреБрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рд╣рдореЗрдВ рд╕реАрдЖрдИ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рдирдИ рдЬреЛрдбрд╝реА рдЧрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ yarn install xxx рддрдм yarn remove xxx ред

рд╡рд╣реА

рдпрд╣рд╛рдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ:

рд╣рдо рдЙрдкрдХрд░рдг рдХреЗ рднреАрддрд░ "рдЙрдкрдХрд░рдгреЛрдВ" рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпреЛрдЬрдирд╛ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рд╣реИред рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ npm рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╣рдорд╛рд░реЗ рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд╣рд░ рдордВрдЧрд╡рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рдерд╛)ред

рд╡реЗрдирд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ package.json рдмрдЪрдд рдХрд░рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реЛрдЧрд╛ред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЦреЛрдирд╛ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд┐рдд рдирд┐рд░реНрдгрдп рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ "рдЕрдиреБрдЪрд░" рдЙрддреНрддрд░ рдпрд╣рд╛рдБ рдкрдврд╝реВрдБ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЬрд┐рджреНрджреА рд╡реНрдпрдХреНрддрд┐ рдерд╛ред

рд▓рдЧрднрдЧ 4 рд╕рд╛рд▓ ... ЁЯдж

"рд╣рдареАрд▓рд╛рдкрди" рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ "рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рджреГрд╖реНрдЯрд┐ рдХрд╛ рд╣реЛрдирд╛ рдФрд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рди рдХрд░рдирд╛"ред

"рд╣рдареАрд▓рд╛рдкрди" рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ "рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рджреГрд╖реНрдЯрд┐ рдХрд╛ рд╣реЛрдирд╛ рдФрд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рди рдХрд░рдирд╛"ред

рдбрд┐рдЬрд╛рдЗрди рджреГрд╖реНрдЯрд┐ рдЦреБрд╢ рдорд╛рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ "рдлреНрд░реАрдлрд╝реЙрд░реНрдо" рдЗрдВрд╕реНрдЯреЙрд▓реНрд╕ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реЗрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдЙрди рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╡рд░реНрддреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕реНрдерд┐рддрд┐ ( node_modules ) рдХреЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдиреИрдкрд╢реЙрдЯ рд░рдЦреЗрдВ? рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рд╕реЗ рдЕрд▓рдЧ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП, рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрдкрд░реНрдХ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╛рд░реНрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╕рд╛рдорд╛рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрджреГрд╢реНрдп рдЗрдВрд╕реНрдЯреЙрд▓рд░реЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдорд╛рди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Git рдиреЗ рджрд╢рдХреЛрдВ рдкрд╣рд▓реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛, рдкрдХрдбрд╝ рд▓рд┐рдпрд╛! рдмрд╕ рдХреБрдЫ рд▓реЗрдХрд░ рдЖрдУ! рд╡рд╣ рдбрд┐рдЬрд╛рдЗрди рдХреНрдпрд╛ рд╣реИ - рд╕реАрдорд╛рдУрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рд▓рдбрд╝рдирд╛ (рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдЬ рджреЗрдирд╛)ред

рдпрд╣рд╛рдБ рджреЛрдиреЛрдВ рд╕рд┐рд░реЛрдВ рдореЗрдВ рд╕реБрд░рдВрдЧ рдХреА рджреГрд╖реНрдЯрд┐ рдЕрдЬреНрдЮрд╛рдирддрд╛, рдЕрддрд┐рд░реЗрдХ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдзреНрд░реБрд╡реАрдХрд░рдг рд╕реЗ рдкреИрджрд╛ рд╣реБрдИ рд╣реИред рдХреЛрдИ рдорд╛рд░реНрд╢рд▓ рдЖрд░реНрдЯ рдпрд╛ рджрд░реНрд╢рди рдпрд╛ рдХреНрд░рд╛рдВрддрд┐ рдпрд╛ рд░рд╛рдЬрдиреАрддрд┐ рдирд╣реАрдВ рд╣реИ; рдмрд╕ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдПрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдХрд░рдг рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╛рд░реНрди рдХреА рддрд░рд╣ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рднрд░рд╛ рд╣реЛрдирд╛, рдпрд╛рд░реНрди рд╣реИ, рдпрд╣рд╛рдВ рдЗрддрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдХрдмреНрд░ рдЦреЛрдж рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдмрд╕ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рд░ рдХреЛрдИ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рд╕рдВрдХреАрд░реНрдг рдкрд╣рд╛рдбрд╝реА рдХреЛ рдзрдХреНрдХрд╛ рджреЗ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mnpenner picture mnpenner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danez picture danez  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chiedo picture chiedo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

torifat picture torifat  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bouk picture bouk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ