рд╕рдорд╕реНрдпрд╛: рдЬрдм рдПрдХ рдЙрддреНрдкрд╛рджрди рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди, рд▓рд╛рдЧреВ next start
рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ require('next')
рдХреЗ рднреАрддрд░ рдПрдХ рдХрд╕реНрдЯрдо server.js
рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рд▓рд╛рдиреЗ рд╢рд╛рдорд┐рд▓ рд╣реИ next
рд╕рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ webpack
ред
рди рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рдЫрд╡рд┐ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрди рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдмреВрдЯрдЕрдк рд╕рдордп рдХреЛ рднреА рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИред _рдиреЛрдЯ: рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдзреНрдпрд╛рди рд╕реЗ рднрд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдЬреИрд╕реЗ webpack
рдХреЛ рджреЗрд╡ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред_
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рддрд┐ рдЬрд╛рдЧрд░реВрдХ рдФрд░ _рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдЯрд╛рдЗрдореНрд╕_ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ: https://twitter.com/rauchg/status/990667331205447680), рд╣рдо next-server
рдкреИрдХреЗрдЬ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдореЗрдВ require('next')
рдЬреИрд╕реА рд╣реА рдХреНрд╖рдорддрд╛рдПрдВ рд╣реЛрдВрдЧреА, рд╕рднреА рд╡рд┐рдХрд╛рд╕-рд╕рдордп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдШрдЯрд╛рдПрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ next-server
рд╕реАрдПрд▓рдЖрдИ рдЬреЛ рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реБрдВрджрд░ рд╢рдЯрдбрд╛рдЙрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
next-server
рдХрд╛ рдХреБрд▓ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗрдЯ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ examples/
рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ next-server
рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ pkg
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЗ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдИрдПрд▓рдПрдл рдмрд╛рдЗрдирд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╣рдорд╛рд░реЗ рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдХреЗ рд▓рд┐рдП рдирд╛рдУ 2.0 рдкрд░ рд╣рдо рдЬреЛ рдардВрдб рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╣ 1.5s рд╣реИ, 80mb IIRC рдХреЗ рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП
рдиреЛрдб рдпрд╛ V8 рдпрд╛ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ 1s рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдардВрдбрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдордп рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИ (рдЬреИрд╕реЗ react
рдФрд░ react-dom
)
рддреБрдо, рдпрд╣ рдХрдорд╛рд▓ рд╣реИ !! :рдУ
рд╡рд╛рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ред
next-server
рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╢реНрдиред
next-routes
рд╕рд╛рде рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛?@ Nishchit14 рдпрджрд┐ рдЖрдк рдмрд┐рд▓реНрдб рдЖрдХрд╛рд░ рдХреЛ рдХрдо рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗ рддреЛ рдЖрдк express
рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ next-routes
рдЕрднреА рднреА рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рддреЛ рд╣рдо рдпрд╣рд╛рдВ рдЬрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рдХрд╛рд▓ рд░рд╣рд╛ рд╣реИред рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд▓рд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЕрдЧрд▓рд╛ рд╕рд░реНрд╡рд░ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдХрдорд╛рд▓ рдХрд╛ рд╣реИ! рдореИрдВ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рд╕реНрдХреИрдВрдбрд┐рдпрдо ( рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ )
1) рдкреИрдХреЗрдЬ рдХрд╛ рдЖрдХрд╛рд░ред рд▓реИрдореНрдмреНрдбрд╛ рдЖрдкрдХреЛ 50рдПрдордмреА рдХреА рд╣рд╛рд░реНрдб рд▓рд┐рдорд┐рдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╕рднреА рджреЗрд╡-рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
2) рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯред рддреНрд╡рд░рд┐рдд рдмреВрдЯрдЕрдк рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рднреА рдЕрдзрд┐рдХрддрдо ~4h рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреВрд░реЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ред
рдЗрд╕ рдкрд╣рд▓ рдХреЛ рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реБрдИ рдФрд░ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИ!
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Nuxt.js рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ nuxt-start
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣ рдХрдорд╛рдВрдб рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ nuxt start
рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ -> nuxt-start
рдЗрд╕рдХрд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ www.bustle.com <1s рдардВрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдПрдХ рдПрд╕рдПрд╕рдЖрд░ preact рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЙрддреНрдкрд╛рджрди рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ 166kb рд╣реИред рд╡рд╣ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╣реИред рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@southpolesteve рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╕реБрдкрд░ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред #рд▓рдХреНрд╖реНрдп
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдорд▓рд╛ micro
рдФрд░ micro-dev
рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред
рдПрдХ рд╣реА рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? next
рдФрд░ next-dev
рдореИрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ next.js рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЕрдм рдЫреЛрдЯреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреНрдпрд╛ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдпрд╛ рд░реАрдкреИрдХ-рдЬрд╝рд┐рдк рдЬреИрд╕реЗ рдкреИрдХреЗрдЬрд░ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
@Enalmada рдореИрдВ рдХрдИ рдбреАрдкреАрдПрд╕ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓рд╛.рдЬреЗрдПрд╕ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ material-ui
рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдХреЗрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдРрдк рд╣реИ рд▓реЗрдХрд┐рди рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд╝рд┐рдк ~ 45 рдПрдордмреА рд╣реИред рдЖрдк рдХрд┐рд╕ рдЖрдХрд╛рд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ?
@albinekb рдореИрдВ 166kb рд╕реЗ рдКрдкрд░ Southpolesteve bustle.com рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реВрдВ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ "45MB" рдХрд┐рддрдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЕрдЧрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЙрддреНрдХреГрд╖реНрдЯ рдЯрд┐рдХрдЯ рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рд╣реИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдЯ рдмрд╣рд┐рд╖реНрдХреГрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд░рдЦрд╛ рдЬрд╛рдПред .
@albinekb рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЬреЗрдПрд╕ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрджрд┐ рдЖрдк ZEIT Now рдореЗрдВ рддреИрдирд╛рдд рд╣реИрдВ рдФрд░ рдЖрдк рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рддреЗрдЬрд╝ рдХреЛрд▓реНрдб рдмреВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ npm рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдлрд╝реЛрдмрд┐рдпрд╛ рдЬреИрд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ) рдмреНрд▓реЛрдЯ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдмреНрд▓реЛрдЯ рд╕реЗ рд▓рдбрд╝рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрдбрдореА рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрдИ рдЯреВрд▓ рд╣реИрдВред рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://github.com/styfle/packagephobia
рдХреНрдпрд╛ рдЗрд╕реЗ рдЕрдЧрд▓реА 7 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛? :(
рдпрджрд┐ рдЖрдк рдЕрднреА zeit рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рддреЗрдЬрд╝ рдХреЛрд▓реНрдб рдмреВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреИрдХреЗрдЬ рдлрд╝реЛрдмрд┐рдпрд╛ рдЬреИрд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд▓рд╛рдирдд рд╣реИ рдЖрдк рдФрд░: https://packagephobia.now.sh/result?p=antd
@Enalmada рдпрд╣ рд╢рд╛рдпрдж antd рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рдЬреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реА рдирд╣реАрдВред рдореИрдВ рдЗрд╕реЗ https://packagephobia.now.sh/result?p=%40material-ui%2Fcore рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ
рдХреНрдпрд╛ рдЗрд╕реЗ рдЕрдЧрд▓реА 7 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛? :(
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, Next.js 7 Serverless Next.js рдХреА рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИ, рд╣рдордиреЗ рд▓рдЧрднрдЧ 5 рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ 2 рдХреЛ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред
рдХреНрдпрд╛ рд░реЛрд▓рдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдиреЗ рдХрднреА рдЕрдЧрд▓рд╛.рдЬреЗрдПрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрд╣реБрдд рдХрд░реАрдм рдЖ рдЧрдпрд╛ рд╣реВрдВ...рдореЗрд░реА 60рдореА рдбрд┐рд╕реНрдЯ рдлрд╛рдЗрд▓ рдкрд░ рд░реЛрд▓рдЕрдк рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЖрдХрд╛рд░ 6рдореА рддрдХ рдиреАрдЪреЗ рдЖ рдЧрдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдбрд┐рд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ next.js рдХреЛрдб рдореЗрдВ рдПрдХ рдПрдХрд▓ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИ рдЬреЛ рд░реЛрд▓рдЕрдк рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИред рдЕрдЧрд░ рдХреЛрдИ next.js рдХреЛрдб рдореЗрдВ рд╕рд░реНрдХреБрд▓рд░ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рдЬрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рднреА рдмрд╣реБрдд рдЫреЛрдЯреЗ рдмрд┐рд▓реНрдб рдФрд░ рддреЗрдЬ рдмреВрдЯрдЕрдк рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/zeit/next.js/issues/5392
рдЗрд╕рдХрд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ www.bustle.com <1s рдардВрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдПрдХ рдПрд╕рдПрд╕рдЖрд░ preact рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЙрддреНрдкрд╛рджрди рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ 166kb рд╣реИред рд╡рд╣ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╣реИред рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@southpolesteve рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓
@shauns рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЕрдм рд╣рд▓рдЪрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдирд╣реАрдВ рд╣реИ: /
@southpolesteve рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ! рдХрдо рд╕реЗ рдХрдо рд╡реЗрдмрдкреИрдХ рдореЗрдВ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред
рдХреНрдпрд╛ рд╣рдореЗрдВ рдиреЗрдХреНрд╕реНрдЯ-рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рдЦрдмрд░ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдХрдорд┐рдЯ рджреЗрдЦреЗред
рдХреИрдирд░реА рд╢рд╛рдЦрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдЖрдк рдЗрд╕реЗ рдХрдм рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?
рдореИрдВ рдЗрд╕ рд╕рдордп рдХреЛрдИ рдЯрд╛рдЗрдорд▓рд╛рдЗрди рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
https://spectrum.chat/zeit/general/unable-to-import-module-now-launcher-error~2662f0ba-4186-402f-b1db-2e3c43d8689a
рдЕрднреА рдЙрддрд░рд╛ #5927
@timneutkens рдХреНрдпрд╛ рдореБрдЭреЗ next
рдХреЛ devрдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореЗрд░реА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ next-server
рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреЗрдмреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
https://github.com/zeit/next.js/blob/canary/packages/next/build/babel/plugins/next-to-next-server.ts
@Skaronator рдпрджрд┐ рдЖрдк # 5927 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рди рддреЛ рд╣реИ, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдкреНрд░рддрд┐ рдкреГрд╖реНрда рдПрдХ рдмрдВрдбрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛, рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдорддрд▓рдм рдЖрдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ .next/serverless/index.js
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ( require('./.next/serverless/index.js')
) рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ render
рд╡рд┐рдзрд┐ рдХрд╣реЗрдВ:
const page = require('./.next/serverless/index.js')
page.render(req, res)
рдпрд╣ рдкреГрд╖реНрда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдЧрд╛
рд╡рд╣ рддреЛ рдХрдорд╛рд▓ рд╣реИ!
рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдкрд░реЗрд╢рд╛рдиреА рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рднреА рдкрд╛рд╕ рдХреЛрдИ рднреА рд╕реБрдЭрд╛рд╡ рд╣реИ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдм рдХрд╕реНрдЯрдо рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдкрде рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдб рдЪрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
const serverless = require("serverless-http");
const http = require('http');
const app = require('./.next/serverless/index.js');
const server = new http.Server((req, res) => app.render(req, res))
app.prepare().then(() => {
const handler = serverless(server, {
binary: binaryMimeTypes
});
return handler(event, context, callback);
});
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк "рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд" рдХреЗ рд╕рд╛рде "рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░" рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдореЗрдВ рдХреЛрдИ .prepare
рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд╣рдо рддреБрд░рдВрдд рдкреГрд╖реНрда рдХреЛ рдПрдЪрдЯреАрдПрдордПрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдм render
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
const serverless = require("serverless-http");
const http = require('http');
const page = require('./.next/serverless/index.js');
const server = new http.Server((req, res) => page.render(req, res))
const handler = serverless(server, {
binary: binaryMimeTypes
});
handler(event, context, callback);
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдиреЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд┐рдпрд╛ (рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдХреИрд╢ рдерд╛) рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдпрд╛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ serverless-http
http.Server
рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ page.render(req, res)
рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ event
рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╡рд╢реНрдпрдХ рд░реЗрдВрдбрд░ req
param рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рде рд╣реА, рдореИрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕/рдХреЛрдЖ/рдЬреЛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдЕрдЧрд▓реА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдкреВрд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ .. ( serverless-http
рдирд┐рд░реНрднрд░рддрд╛ рдореБрдХреНрдд рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рдерд╛)
рдореИрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реВрдБ: /
рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреЛ @guillaumebreux https://github.com/zeit/now-builders/blob/master/packages/now-node-bridge/bridge.js рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж @timneutkens , рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд╕рдордп рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ: typeError: Parameter "url" must be a string, not undefined
рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдЦреБрджрд╛рдИ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдореБрдЭреЗ рдХрднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦреВрдВрдЧрд╛
рдореИрдВ рдереЛрдбрд╝рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реВрдБред рдпрд╣ рдереНрд░реЗрдб рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреЛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рд╕рд░реНрд╡рд░-рд░рд╣рд┐рдд рдРрдкреНрд╕ рдФрд░ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд рд╕рд░реНрд╡рд░ рдЬрд┐рдирдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб npm рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд╡реЗрдмрдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЬреАрдЖрдИрдПрдл рдмрд╛рдж рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд░реВрдЪрд┐ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ next-server
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ Google рдпрд╛ рдЧрд┐рдЯрд╣рдм рдЦреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдЯреИрдЧ рдореЗрдВ рд╕реЗ рдПрдХ 8.0.0-рдХреИрдирд░реА.7 рд╣реИ - рдЕрдЧрд▓реЗ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдЯреИрдЧ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ рд╕рд╣реА рдкреИрдХреЗрдЬред
рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЬреЛ рд▓рд┐рдЦрд╛ рд╣реИ рд╡рд╣ рд╕рд╣реА рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рднрд▓реЗ рд╣реА рд╡рд╣ рдХреИрдирд░реА рдореЗрдВ рд╣реЛ, рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЙрд╕ рддрдХ рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреВрдВ?
рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди (рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореИрдВ prod рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ) рдореЗрд░реЗ next.config.js
config.externals
рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИред рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдЬрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рджреЗрд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рд▓реЛрдб рдкрд░ рдЖрдзреЗ рд╕реЗрдХреЗрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд┐рд░ рдкреГрд╖реНрда рд╣реЛрддрд╛ рд╣реИред (рдореЗрд░рд╛ рдЭреБрдХрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдереАрдо рд╕рдВрджрд░реНрдн рд╣реИ рдЬреЛ рдЪрдпрдирд┐рдд рдереАрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЛ рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣реИред)
рдореИрдВ рдПрдХ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рд╕рд░реНрд╡рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдореБрдЭреЗ 200MB рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рдФрд░ рдлрд┐рд░ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдЦрд░рд╛рдм, рдЫреЛрдЯреЗ рдЙрддреНрдкрд╛рджрди рд╡реАрдПрдо рдкрд░ 2 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
* "рдкреНрд░реЛрдб" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд┐рдерд┐рд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд╢рди рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдпрд╛ рд╡рд╣ рд╕рдм рдкреЗрд╢реЗрд╡рд░ рдирд╣реАрдВ рд╣реИ
рдЗрд╕рдХрд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ www.bustle.com <1s рдардВрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдПрдХ рдПрд╕рдПрд╕рдЖрд░ preact рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЙрддреНрдкрд╛рджрди рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ 166kb рд╣реИред рд╡рд╣ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╣реИред рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Next.js 8 рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд▓рдХреНрд╖реНрдп рдХрд╛ рдЬрд╝рд┐рдк рдЖрдХрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 42Kb рд╣реИ
рд╡рд╣ рддреЛ рдХрдорд╛рд▓ рд╣реИ! рдЗрд╕рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реВрдБ!
рдореЗрд░реЗ рдкрд╛рд╕ @dfoverdx рдЬреИрд╕рд╛ рд╣реА рдкреНрд░рд╢реНрди рд╣реИред рдореИрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреА _all_ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рд╣реЛрдВрдЧреА (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЕрдЧрд▓рд╛, рдЕрдХреНрд╖, ...)ред
рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдирд╣реАрдВ рд╣реИ?
рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд░реНрд╡рд░рд╕рд╛рдЗрдб рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╣реВрдВ?
рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ externals
рдЕрдиреБрднрд╛рдЧ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
module.exports = {
webpack: (config, { dev }) => {
config.externals = [];
return config;
})
};
рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдкрд░ рдЕрднреА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдХрд┐ рдЙрдирдХреЛ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП ...
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдореЛрдб рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЕрдЧрд▓рд╛ рдФрд░ рдЙрд╕рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ _app.js .next рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛/рд░рд╛рдЙрдЯрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдЧреИрд░-рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдореЛрдб рднреА рдЕрдЧрд▓рд╛ рдмрдВрдбрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛?
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдореЛрдб рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЕрдЧрд▓рд╛ рдФрд░ рдЙрд╕рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ _app.js .next рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛/рд░рд╛рдЙрдЯрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЕрдЧрд▓реЗ 8 рдХреЗ рдмрд╛рдж рд╕реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдореЗрдВ 'рдиреЗрдХреНрд╕реНрдЯ' рдХреЗ рдмрдЬрд╛рдп 'рдиреЗрдХреНрд╕реНрдЯ-рд╕рд░реНрд╡рд░' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рд╣реЙрдЯ рд░реАрд▓реЛрдбрд┐рдВрдЧ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрд╣ рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реАрдЖрдИ рдмрд┐рд▓реНрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡реЗрдмрдкреИрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрд╛рджрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдЖрдЬрдорд╛рдпрд╛ рд╣реИред
@ElvenMonky рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЙрдХреНрд╕ рдпрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред
@timneutkens рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ/рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВред
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЕрдЧрд▓реЗ 8 рдХреЗ рдмрд╛рдж рд╕реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдореЗрдВ 'рдиреЗрдХреНрд╕реНрдЯ' рдХреЗ рдмрдЬрд╛рдп 'рдиреЗрдХреНрд╕реНрдЯ-рд╕рд░реНрд╡рд░' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рд╣реЙрдЯ рд░реАрд▓реЛрдбрд┐рдВрдЧ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдмрд┐рд▓реНрдб рдЪрд▓рд╛рдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрд╡рд░реБрджреНрдз рд╣реИ: "рдЬрдм рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ рддреЛ рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред https://err.sh/zeit/next.js/next-start-serverless "
рдлрд┐рд░, рдпрджрд┐ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реАрдзреЗ next
рдкреИрдХреЗрдЬ рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реА рд╣реИрдВ (рдЬреИрд╕реЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд _app.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ next/router
)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ next
рдФрд░ webpack
рд╕рд╛рдорд╛рди рдХреЛ рд╡реИрд╕реЗ рднреА рдкреНрд░реЛрдбрдХреНрд╢рди рдмрд┐рд▓реНрдб рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
@ElvenMonky
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЕрдЧрд▓реЗ 8 рдХреЗ рдмрд╛рдж рд╕реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдореЗрдВ 'рдиреЗрдХреНрд╕реНрдЯ' рдХреЗ рдмрдЬрд╛рдп 'рдиреЗрдХреНрд╕реНрдЯ-рд╕рд░реНрд╡рд░' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рд╣реЙрдЯ рд░реАрд▓реЛрдбрд┐рдВрдЧ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛ рд╡рд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдмреИрдмрд▓ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/zeit/next.js/blob/709850154754278d2fc86b987eebe1b3f0565255/packages/next/build/babel/plugins/commonjs.ts#L5 -L32
@sheerun рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ #7011 рдореЗрдВ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк next-transpile-modules
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ next
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓ рдХрд░рдХреЗ рдЕрдирд╕реБрд▓рдЭреЗ next/router
рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ: https://github.com/ElvenMonky/next.js/tree/custom-next-server-express/examples/custom-server-express
рдкреАрдПрд╕: рдореИрдВ рдЕрднреА рднреА # 5927 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЛ TODO рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рдм рдХреБрдЫ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди https://www.npmjs.com/package/next-serverless рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реЗ рдЕрдЧрд▓реЗ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЕрдЧрд▓реЗ 8 рдХреЗ рдмрд╛рдж рд╕реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдореЗрдВ 'рдиреЗрдХреНрд╕реНрдЯ' рдХреЗ рдмрдЬрд╛рдп 'рдиреЗрдХреНрд╕реНрдЯ-рд╕рд░реНрд╡рд░' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рд╣реЙрдЯ рд░реАрд▓реЛрдбрд┐рдВрдЧ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рд╕рд▓рд╛рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП next/config
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП next
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рд▓реЗрдХрд┐рди require('next/config')
рдмрд┐рдирд╛ next
рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг 8.0.3 рдХреЗ рд╕рд╛рде рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг 8.1.0 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдХреНрдпрд╛ рдЕрдЧрд▓реЗ/рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд┐рд╕реА рднрд┐рдиреНрди рдкреИрдХреЗрдЬ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕реЗ next-runtime-config
?
рдпрд╛ next-runtime-vars
(рдЕрдЧрд▓реЗ.config.js рдХреЗ рд╕рд╛рде рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рдмреНрдж рд╕реЗ рдмрдЪрдирд╛)ред
рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЕрдЧрд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред
рдЬрд╝рд░рд╛ рд╕реБрдирд┐рдП рд╕рднреА! рдпрд╣ рд╕рдорд╕реНрдпрд╛ Next.js 8 рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ, рдФрд░ рдЕрднреА рднреА Next.js 9 рдореЗрдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛: https://github.com/zeit/next.js/issues/7011
рдореИрдВрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ: "рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд"
рд╣рдЯрд╛рдИ рдЧрдИ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ
рдХреБрдЫ "next/*"
рдХреЛ "next-server/*"
рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕реЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдУрдкреА рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред
рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рднреА рдЗрдирд▓рд╛рдЗрди рд╣реИрдВ (AKAIK)
рдЬрд╝рд░рд╛ рд╕реБрдирд┐рдП рд╕рднреА! рдпрд╣ рд╕рдорд╕реНрдпрд╛ Next.js 8 рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ, рдФрд░ рдЕрднреА рднреА Next.js 9 рдореЗрдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
рд╣рд╛рдп @ рдЯрд╛рдЗрдорд░ - рдХреНрдпрд╛ рдЖрдк рд╕рд░реНрд╡ рд░рд╣рд┐рдд рд▓рдХреНрд╖реНрдп рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ 'рдЕрдЧрд▓рд╛' рдХреЛ 'рдЕрдЧрд▓рд╛-рд╕рд░реНрд╡рд░' рд╕реЗ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ?
рдЕрдЧрд░ рд╣рдо рдиреЗрдХреНрд╕реНрдЯ рдХреЛ рдиреЗрдХреНрд╕реНрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рд░рд┐рдкреНрд▓реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдлреЛрд▓реНрдбрд░ рд╕рд╛рдЗрдЬ рдХреЛ рддрдм рддрдХ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ package.json рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рднреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ? рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рддреИрдирд╛рдд рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдВрдХ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг serverless
рд▓рдХреНрд╖реНрдп рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ, рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
@timneutkens serverless
рд▓рдХреНрд╖реНрдп рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред #5927 рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рд╡реНрдпрд╛рдкрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрдареЛрдВ, рд╕рдВрдкрддреНрддрд┐ рдЙрдкрд╕рд░реНрдЧ, рдХрд╕реНрдЯрдо _рдПрдк, _рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ _err рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: рдореВрд▓ рд░реВрдк рд╕реЗ TODO рд╕реВрдЪреА рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред
next-server
рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡реЗрдмрдкреИрдХ рдФрд░ рдмреЗрдмреЗрд▓ рдЬреИрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЕрдЬреАрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рд╕рдорд╛рдзрд╛рди рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдХреБрдЫ рд╣реИрдХреНрд╕ рдФрд░ рд╡реБрдбреВ рдбрд╛рдВрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рд╣рдо рдпрд╣рд╛рдБ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдореЗрдВ рдерд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рджрд┐рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рд╕рдорд╛рдзрд╛рди рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ рдЬреИрд╕рд╛ рдХрд┐ @rauchg рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдорд╛рд░реЗ рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдХреЗ рд▓рд┐рдП рдирд╛рдУ 2.0 рдкрд░ рд╣рдо рдЬреЛ рдардВрдб рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╣ 1.5s рд╣реИ, 80mb IIRC рдХреЗ рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП
рдиреЛрдб рдпрд╛ V8 рдпрд╛ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ 1s рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдардВрдбрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдордп рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИ (рдЬреИрд╕реЗ
react
рдФрд░react-dom
)