рдиреЛрдб.рдЬреЗрдПрд╕ рдмрд┐рдирд╛ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдХреЗ

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


рдЗрд╕реА рд╕рдордп, рдПрдирдкреАрдПрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рди рдХреА рдШреЛрд╖рдгрд╛ рдХреА ред


рдЖрдЗрдП рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕


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


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


рд╕рд░рд▓реАрдХреГрдд, рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:


  1. рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрдгрдирд╛ рд╡реИрдз рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
  2. рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ
  3. рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЛрдб_рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

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


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


рд╕реАрдорд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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


рдпрд╛рд░реНрди рдкреАрдПрдирдкреА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ


рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдореЗрдВ рдЙрдирдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реАрдЯреЗрд▓рд┐рдВрдЧ рд╣реИред


рдпрд╛рд░реНрди рдХрд╛ рдкреАрдПрдирдкреА-рд╕рдХреНрд╖рдо рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рд╕реБрд╡рд┐рдзрд╛-рд╢рд╛рдЦрд╛ рдпрд╛рд░реНрди- рдкреАрдПрдирдкреА рдореЗрдВ рд╣реИред


рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рднрдВрдбрд╛рд░ рдХрд╛ рдХреНрд▓реЛрди рдмрдирд╛рддреЗ рд╣реИрдВ


 git clone git@github.com:yarnpkg/yarn.git --branch yarn-pnp 

рдпрд╛рд░реНрди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рд╣реИ , рдЪрд░рдгреЛрдВ рдХрд╛ рд╕реЗрдЯ рдмрд╣реБрдд рддреБрдЪреНрдЫ рд╣реИред


рдирд┐рд░реНрдорд╛рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╛рд░реНрди рдХреЗ рдХрд╕реНрдЯрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ:


 alias yarn-local="node $PWD/lib/cli/index.js" 

Plug'n'play рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрд╛ рддреЛ рдзреНрд╡рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ: yarn --pnp , рдпрд╛ package.json рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ package.json "installConfig": {"pnp": true} : "installConfig": {"pnp": true} ред


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


  • рд╡рд┐рд╢рд┐рд╖реНрдЯ yarn рд╕реНрдерд╛рдкрдирд╛: 19 рдПрд╕
  • yarn --pnp рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрдирд╛ - yarn --pnp : 3 рдПрд╕

рдорд╛рдк рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдардВрдб рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЧрдИ рдереА рддрд╛рдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрд╢ рдореЗрдВ рд╣реЛрдВред


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред .pnp.js рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд .pnp.js рдлрд╝рд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ Node.js. рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдореВрд▓ рддрд░реНрдХ рдХрд╛ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рд▓реЛрдб рдХрд░рдХреЗ, рд╣рдо require() рджреЗрддреЗ рд╣реИрдВ require() рд╡реИрд╢реНрд╡рд┐рдХ рдХреИрд╢ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ node_modules рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдпрд╛рд░реНрди рдХрдорд╛рдВрдб, рдЬреИрд╕реЗ yarn start рдпрд╛ yarn test , рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░реАрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред


рдореИрдкрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, pnp.js рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк package.json рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ require('test') рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ: Error: You cannot require a package ("test") that is not declared in your dependencies ред рдЗрд╕ рд╕реБрдзрд╛рд░ рд╕реЗ рдХреЛрдб рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред


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


рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрд╕реНрд▓рд┐рдВрдЯ, рдЬреЗрд╕реНрдЯ, рд░реЛрд▓рдЕрдк рдФрд░ рд╡реЗрдмрдкреИрдХ рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЗ рд╕реНрдХреЗрдЪ рд╣реИрдВред


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


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


рдПрдирдкреАрдПрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ


рдПрдирдкреАрдПрдо рдЯреАрдо рдиреЗ рдЗрд╕рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреА рднреА рдШреЛрд╖рдгрд╛ рдХреАред рдЙрдирдХрд╛ рдирдпрд╛ рдЯреВрд▓, рдЯрд┐рдВрдХ, рдПрдХ рдЕрд▓рдЧ, рдПрдирдкреАрдПрдо рд╕реНрд╡рддрдВрддреНрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред package-lock.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ package-lock.json рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ package-lock.json npm install рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ npm install ред рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, tink рдПрдХ node_modules/.package-map.json , рдЬреЛ рдХреИрд╢ рдореЗрдВ рдЙрдирдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдиреАрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред


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


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


рдирд┐рд╖реНрдХрд░реНрд╖


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


рдирдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрд╕рд╛рдорд╛рдиреНрдп рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдерд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрд╢рд╛ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди .pnp.js рдлрд╝рд╛рдЗрд▓ рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЖрднрд╛рд╕реА рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ yarn unplug --persist рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдХреИрд╢ рд╕реЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ node_modules рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ node_modules рдореЗрдВ node_modules ред


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


рд╕рдВрджрд░реНрдн


Source: https://habr.com/ru/post/hi423487/


All Articles