рд░рдирдЯрд╛рдЗрдо рдореЗрдВ Nuxt.js рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдпрд╛ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рд╕рднреА рдХреЛ рдкрдЫрддрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИ


( рдЪрд┐рддреНрд░рдг )

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

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

рдХреБрдЫ рджреМрд░ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкрд╛рд░рдВрдкрд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдЦреБрдж рдХреЛ рдлрдВрд╕рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ Nuxt.js. рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд┐рдпрд╛

рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ Nuxt.js


рд╣рдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЧреНрд░рд╛рд╣рдХ-рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП , рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд V..s рдкрд░ рдЖрдзрд╛рд░рд┐рдд "рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд░реВрдкрд░реЗрдЦрд╛" рд▓реЗрддреЗ рд╣реИрдВ ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рдПрдкреАрдЖрдИ (microservices рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░) рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдХрдИ рдкрд░рддреЛрдВ, рдпрд╣ рд╕рдВрдкрд╛рджрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдЬрд▓реА рдХреЗ рддреЗрдЬ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рджреЗрддрд╛ рд╣реИред рдорд╣рд╛рди, рд╕рд╣реА?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ Nuxt.js рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдЬрд▓реНрджреА рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдврд╛рдВрдЪреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣рдордиреЗ рдХрд┐рдпрд╛ред

рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ, рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реЛ, рдХрдИ рддреИрдирд╛рдд рдХрд░реЛ!


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

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

рдФрд░ рд╣рдордиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛


рдмреЗрд╢рдХ, рд╣рдордиреЗ Google рдкрд░ рдПрдХ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреАред рдлрд┐рд░ рд╣рдордиреЗ Nuxt.js рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ред рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ - рдореБрдЭреЗ рдЕрдкрдиреЗ рдЖрдк рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдерд╛, рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреИрдХрдСрд╡рд░рдлрд╝реНрд▓реЛ рд╕реЗ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ, рдареАрдХ рд╣реИ?)ред

рдЪрд▓реЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ Nuxt.js рдпрд╣ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред


Nuxt.js рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╛рдо nuxt.config.js рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

const config = require('nuxt.config.js') const nuxt = new Nuxt(config) 

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

process.env.propertyName
// рдпрд╛
context.env.propertyNameред

рдпреЗ рдЪрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдмреЗрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ: Nuxt.js env рдкреЗрдЬ ред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡реЗрдмрдкреИрдХ рдкрд░ рдЧреМрд░ рдХрд┐рдпрд╛ рд╣реИ? рд╣рд╛рдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рдВрдХрд▓рди рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЖрдЗрдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ


рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ Nuxt.js рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рдЕрдм рд╣рдо nuxt.config.js рдХреЗ рдЕрдВрджрд░ env рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  • рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рдЪрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, head.meta рдХреЗ рдЕрдВрджрд░) рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ nuxt.config.js рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╕рд░реНрд╡рд░ / index.js рдореЗрдВ рдХреЛрдб:

 const config = require('../nuxt.config.js') 

рдЗрд╕рдореЗрдВ рдмрджрд▓реЗрдВ:

 //    Nuxt.js const config = require('./utils/extendedNuxtConfig.js').default 

рдЬрд╣рд╛рдВ рдмрд░реНрддрди / рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд

 import config from 'config' import get from 'lodash/get' //   Nuxt.js const defaultConfig = require('../../nuxt.config.js') //   const extendedConfig = {} //   Nuxt.js const nuxtConfig = { ...defaultConfig, ...extendedConfig } //     //       if (get(nuxtConfig, 'head.meta')) { nuxtConfig.head.meta.push({ hid: 'og:url', property: 'og:url', content: config.get('app.canonical_domain') }) } export default nuxtConfig 

рд╣рдордиреЗ рд╣рд╛рдереА рдХреЛ рдиреЛрдЯрд┐рд╕ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛


рдЦреИрд░, рд╣рдордиреЗ nuxt.config.js рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдирд╡реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рдПрдХ рдзрд╛рд░рдгрд╛ рдереА рдХрд┐ рдХреБрдЫ рд╕рд╛рд░ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╣реИрдВред

  • рдЧреНрд░рд╛рд╣рдХ - рдПрдХ env.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (window.env.envKey),
  • рд╕рд░реНрд╡рд░ - рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ,
  • рд╕рдорд░реВрдк рдХреЛрдб, рдХреБрдЫ рдЗрд╕ рддрд░рд╣
    context.isClient? window.env [рдХреБрдВрдЬреА]: Global.saringEnv [рдХреБрдВрдЬреА]ред

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

Vuex рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛


рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ Vuex рд╕реНрдЯреЛрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдиреНрдпреВрдХреНрд╕реНрдЯ, рдЬреЗрдПрд╕ рдХреЗ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Vuex рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Vue.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдлрд╝реНрд▓рдХреНрд╕-рдкреНрд░реЗрд░рд┐рдд рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╣реИред

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

рдЖрдЗрдП рд╕рд░реНрд╡рд░ / рдмрд░реНрддрди / shareEnv.js рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

 import config from 'config' /** *  ,      *  ,     *  ,       * * @type {Object} */ const sharedEnv = { // ... canonicalDomain: config.get('app.canonical_domain'), } export default sharedEnv 

рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдЗрд╕реЗ Vuex рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 /** *   . *        * .   * https://nuxtjs.org/guide/vuex-store/#the-nuxtserverinit-action * * @return {Object} Shared environment variables. */ const getSharedEnv = () => process.server ? require('~/server/utils/sharedEnv').default || {} : {} // ... export const state = () => ({ // ... sharedEnv: {} }) export const mutations = { // ... setSharedEnv (state, content) { state.sharedEnv = content } } export const actions = { nuxtServerInit ({ commit }) { if (process.server) { commit('setSharedEnv', getSharedEnv()) } } } 

рд╣рдо рдЗрд╕ рддрдереНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ nuxtServerInit, hmm, server initialization рдХреЗ рджреМрд░рд╛рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рдХрдард┐рдирд╛рдИ рд╣реИ: getSedenEnv рд╡рд┐рдзрд┐ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реБрдЖ?


рдЕрдм рд╣рдореЗрдВ рдЖрдо рдЪрд░ рдорд┐рд▓ рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдпрд╣ред $ store.state.saredEnv.canonicalDomain

рдЬреАрдд!

рдЕрд░реЗ рдирд╣реАрдВред рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?


рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЬрдм рд╣рдо рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
Vue.use (MyPlugin, {someEnvOption: 'vuexx' рдХреА рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ))

рдорд╣рд╛рди, рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐, Vue.js Nuxt.js рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦреБрдж рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд▓рд┐рдВрдХ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдИрдПрдирд╡реА рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЪрд▓реЛ рдкреНрд▓рдЧрдЗрди рдХреЛ рдПрдХ async рдлрд╝рдВрдХреНрд╢рди рдХрд░реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП nuxtServerInit рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ:

 import Vue from 'vue' import MyPlugin from 'my-plugin' /** *   MyPlugin . */ export default async (context) => { //  ,      sharedEnv await context.store.dispatch('nuxtServerInit', context) const env = { ...context.store.state.sharedEnv } Vue.use(MyPlugin, { option: env.someKey }) } 

рдЕрдм рдЬреАрдд рд╣реИред

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


All Articles