рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 13 рдПрдирдкреАрдПрдо рдЯреНрд░рд┐рдХреНрд╕

рд╣рд░ рджрд┐рди, рд▓рд╛рдЦреЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬрдм рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ npm (рдпрд╛ рдпрд╛рд░реНрди) рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред npx create-react-app npm init рдпрд╛ npx create-react-app рдЬреИрд╕реЗ рд░рдирд┐рдВрдЧ рдХрдорд╛рдВрдб рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХрд╛ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░реНрд╡рд░, рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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



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

рдпрджрд┐ рдЖрдк npm рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ - рддреЛ рдЕрд╡рдЧрдд рд░рд╣реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо Node.js. рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рдмреИрд╢ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

1. рдмреБрдирд┐рдпрд╛рджреА рдЖрджреЗрд╢реЛрдВ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рдХрд▓реНрдк


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

  • рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк: npm install ред рд╢реЙрд░реНрдЯрдХрдЯ: npm i
  • рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк: npm test ред рд╢реЙрд░реНрдЯрдХрдЯ: npm t ред
  • рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк: npm --help ред рд╢реЙрд░реНрдЯрдХрдЯ: npm -h
  • рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рдзреНрд╡рдЬред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк: --global ред рд╢реЙрд░реНрдЯрдХрдЯ: -g ред
  • рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдзреНрд╡рдЬ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ - --save-dev ред рд╢реЙрд░реНрдЯрдХрдЯ: -D ред
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ npm init рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ npm init ред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк npm init --yes рдпрд╛ npm init --yes npm init --force ред рд╢реЙрд░реНрдЯрдХрдЯ: npm init -y рдпрд╛ npm init -f

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

рдХрдо рдЖрдо рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк


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

  • рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреИрдХреЗрдЬ рдХреА рдмрдЪрддред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк: --save-optional ред рд╢реЙрд░реНрдЯрдХрдЯ: -O ред
  • рдкреИрдХреЗрдЬ рдХреЗ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реЗрдЬрдирд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ --save-exact ред рд╢реЙрд░реНрдЯрдХрдЯ: -E ред

--save-bundle npm install рдХрдорд╛рдВрдб рдХреЛ --save-bundle , рдпрд╛ -B bundledDependencies рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ --save-bundle рдХрд┐рдП рдЧрдП рдмрдВрдбрд▓ рдореЗрдВ рдПрдВрдЯреНрд░реА package.json рдмрдВрдбрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред bundledDependencies рдореЗрдВ рд▓рд┐рд╕реНрдЯреЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдФрд░ рдкреИрдХреЗрдЬ рд╡рд╛рд▓реА рдЯрд╛рд░рдмреЙрд▓ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк bundledDependencies npm pack рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

ред рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрддрд┐рдХрд░рдг


рдЖрдорддреМрд░ рдкрд░, рдбреЙрдЯ ( . ) рдЪрд┐рд╣реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ (рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Npm рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ package.json рдореЗрдВ main рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред package.json рдлрд╝рд╛рдЗрд▓:

 {  "main": "index.js" } 

рдЗрд╕ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, npx create-react-app рдЬреИрд╕реА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рдеред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ npx create-react-app my-app рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рдЬреЛ рдХрд┐ рдирдП npx create-react-app . my-app рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛), рдЖрдк рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ: npx create-react-app . (рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ)ред рдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрд╕ рд╕рдордп рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред

2. npm init рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛


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

 npm config set init.author.name "Joe Bloggs" npm config set init.author.email "joebloggs@gmail.com" npm config set init.author.url  "joebloggs.com" npm config set init.license   "MIT" 

рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, npm config edit рдХрдорд╛рдВрдб рджрд░реНрдЬ npm config edit ред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдПрдбрд┐рдЯрд░ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ npm рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ npm config edit -g рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ npm config edit -g ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рд╕реЗ рднрд░рддрд╛ рд╣реИред

 echo "" > $(npm config get userconfig) npm config edit 

рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреА рд╣реИ:

 echo "" > $(npm config get globalconfig) npm config --global edit 

3. рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ


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

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗред рдпрд╣ рдПрдХ рдХреНрд░реЙрд╕-рдПрдирд╡ рдкреИрдХреЗрдЬ рд╣реИред рдЗрд╕реЗ npm i -D cross-env рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд╕рд╛рдордиреЗ cross-env рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 {  "scripts": {    "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js" } 

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

  • рд░рд┐рдореНрд░рд╛рдл рдкреИрдХреЗрдЬред рдпрд╣, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рд╢реЗрд▓рдЬреЗрдПрд╕ рдкреИрдХреЗрдЬред рдпрд╣ рдпреВрдирд┐рдХреНрд╕ рдХрдорд╛рдВрдб рд╢реЗрд▓ рдХрд╛ рдПрдХ рдкреЛрд░реНрдЯреЗрдмрд▓ Node.js рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

4. рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди


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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪрдпрдирд┐рдд рдкреИрдХреЗрдЬ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: npm i -D concurrently ред рдлрд┐рд░ package.json рдЖрдк рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 {  "start": "concurrently \"command1 arg\" \"command2 arg\"" } 

5. рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓ рд░рд╣реА рд╣реИ


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

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк cd рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 cd folder && npm start && cd .. 

рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рд░реЛрдЪрдХ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ --prefix рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ --prefix , рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 npm start --prefix path/to/your/folder 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП npm start рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдХрд╛ рдХреЛрдб, рдХреНрд░рдорд╢рдГ client рдФрд░ server рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

 "start": "concurrently \"(npm start --prefix client)\" \"(npm start --prefix server)\"", 

6. рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рддрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓реЙрдиреНрдЪ рдореЗрдВ рджреЗрд░реА рдХрд░рдирд╛


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджреЗрд╡ рд▓рд┐рдкрд┐ рд╣реИ рдЬреЛ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ, concurrently рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ concurrently , рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╡рд┐рдВрдбреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди wait-on рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ wait-on рдЖрдк рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╡рд┐рдВрдбреЛ рдХреЗрд╡рд▓ рддрднреА рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░рдд http://localhost:3000 рдкрд░ рдЙрдкрдпреЛрдЧ рдФрд░ рд╕реБрд▓рдн рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛред рдпрд╣рд╛рдВ wait-on рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 "dev": "concurrently \"cross-env BROWSER=none npm run start\" \"wait-on http://localhost:3000 && electron .\"", 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ BROWSER=none рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ BROWSER=none рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╕рдорд╛рдзрд╛рди рдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП, cross-env рдХрдорд╛рдВрдб рд╣реИред

7. рдЙрдкрд▓рдмреНрдз рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛


package.json рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ npm run рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

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

 npm i -g ntl 

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


Ntl рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

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

8. рдкреНрд░реА-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкреЛрд╕реНрдЯ-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛


рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ postbuild рдФрд░ postbuild рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ build рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдкреВрд░реНрд╡ рдФрд░ рдмрд╛рдж рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд┐рдирдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ p ackage.json рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

9. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╡рд┐рд╢реЗрд╖ npm рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк npm version рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ major , minor рдпрд╛ patch рдмрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 // 1.0.0 npm version patch // 1.0.1 npm version minor // 1.1.0 npm version major // 2.0.0 

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

 {  "predeploy": "npm version patch" } 

10. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ package.json рдХрд╛ рд╕рдВрдкрд╛рджрди


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

 npm install -g json 

рддрдм json рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ -I рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди bar рд╕рд╛рде рдПрдХ рдирдИ foo рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 json -I -f package.json -e 'this.scripts.foo="bar"' 

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдЖрдк json рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВрдЧреЗред

11. рд╕реЗрдЯрдЕрдк рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди


рдпрджрд┐ рдЖрдкрдХреЗ package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "repository" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреЗрдЬ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, npm repo рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

 git config --get remote.origin.url 

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

 json -I -f package.json -e "this.repository=\"$(git config --get remote.origin.url)\"" 

12. npm init рдХрдорд╛рдВрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдирд╛


рдЕрдм рдПрдХ рдмрдбрд╝реЗ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ npm init рдХрдорд╛рдВрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ URL рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкрд╣рд▓реА рдкреНрд░рддрд┐рдмрджреНрдз рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдЬреЛ рд╣рдорд╛рд░рд╛ рдЖрдЦрд┐рд░реА рд╕рд┐рд░рд╛ рд╣реЛрдЧрд╛, рд╣рдо git рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдЖрдк .npm-init.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .npm-init.js npm init рдХрдорд╛рдВрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдРрд╕реА рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ (рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ C:/Users/<username> , рдФрд░ Mac, /Users/<username> ) рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, npm рдЬрд╣рд╛рдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 npm config set init-module ~\.npm-init.js 

git рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП .npm-init.js рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ, рдЬреЛ рдЙрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ npm init рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ:

 module.exports = {  name: prompt('package name', basename || package.name),  version: prompt('version', '0.0.0'),  decription: prompt('description', ''),   main: prompt('entry point', 'index.js'),  repository: prompt('git repository', ''),  keywords: prompt(function (s) { return s.split(/\s+/) }),  author: prompt('author', 'Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)'),  license: prompt('license', 'ISC') } 

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:

 nameInPackage: prompt('nameInPrompt', 'defaultValue') 

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ prompt рд╡рд┐рдзрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдпрджрд┐ рдЖрдк рдорд╛рдирдХ npm init рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ .npm-init.js рд╣рдЯрд╛ .npm-init.js ред

13. npm init рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрдорд┐рдЯ рднреЗрдЬрдирд╛


.npm-init.js рдореЗрдВ git рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .npm-init.js рд╣рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП child_process рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ execSync рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ execSync рд╣реИ, рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:

 const { execSync } = require('child_process'); 

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

 function run(func) {  console.log(execSync(func).toString()) } 

рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░, GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ URL рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдкреНрд░реЙрдореНрдкреНрдЯ рдмреНрд▓реЙрдХ рдмрдирд╛рдПрдВред рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ URL рд╣реИ, рддреЛ рд╣рдо README.md рдлрд╝рд╛рдЗрд▓ README.md рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкрд╣рд▓рд╛ рдХрдорд┐рдЯ рднреЗрдЬреЗрдВрдЧреЗред

рддреЛ, .npm-init.js рдХреЗ .npm-init.js . module.exports рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рдореНрди рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 repository: prompt('github repository url', '', function (url) {  if (url) {    run('touch README.md');    run('git init');    run('git add README.md');    run('git commit -m "first commit"');    run(`git remote add origin ${url}`);    run('git push -u origin master');   return url; }) 

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ .npm-init.js рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

 const { execSync } = require('child_process'); function run(func) {  console.log(execSync(func).toString()) } module.exports = {  name: prompt('package name', basename || package.name),  version: prompt('version', '0.0.0'),  decription: prompt('description', ''),  main: prompt('entry point', 'index.js'),  keywords: prompt(function (s) { return s.split(/\s+/) }),  author: prompt('author', 'Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)'),  license: prompt('license', 'ISC'),  repository: prompt('github repository url', '', function (url) {    if (url) {      run('touch README.md');      run('git init');      run('git add README.md');      run('git commit -m "first commit"');      run(`git remote add origin ${url}`);      run('git push -u origin master');       return url;  }), } 

рдпрд╣ рд╡рд╣ package.json рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ package.json .npm-init.js рдлрд╝рд╛рдЗрд▓ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рддрд╛ рд╣реИ .npm-init.js :

 {  "name": "Custom npm init",  "version": "0.0.0",  "decription": "A test project, to demonstrate a custom npm init script.",  "main": "index.js",  "keywords": [],  "author": "Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)",  "license": "ISC",  "repository": {    "type": "git",    "url": "git+https://github.com/JoeBloggs/custom.git"  },  "bugs": {    "url": "https://github.com/JoeBloggs/custom/issues"  },  "homepage": "https://github.com/JoeBloggs/custom#readme" } 

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

рдкрд░рд┐рдгрд╛рдо


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк npm рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles