Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЬрд┐рдирдореЗрдВ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ

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



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд


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

рд▓реЙрдХ рдлрд╛рдЗрд▓ рдХреНрдпрд╛ рд╣реИ?


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

рдпрд╣рд╛рдБ package-lock.json рджрд┐рдЦрддрд╛ рд╣реИред

 { "name": "lockfile-demo", "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": {  "ansi-styles": {    "version": "3.2.1",    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",    "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",    "requires": {      "color-convert": "^1.9.0"    }  },  "chalk": {    "version": "2.4.2",    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",    "requires": {      "ansi-styles": "^3.2.1",      "escape-string-regexp": "^1.0.5",      "supports-color": "^5.3.0"    }  } } } 

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг yarn.lock рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпрд╣ package-lock.json рддрд░рд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╣реИред

 # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies:       color-convert "^1.9.0" chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies:       ansi-styles "^3.2.1"       escape-string-regexp "^1.0.5"       supports-color "^5.3.0" 

рдЗрди рджреЛрдиреЛрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ:

  • рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдгред
  • рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реАред
  • рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдЪреЗрдХрд╕рдо рд╕рд╣рд┐рдд рдкреИрдХреЗрдЬ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЛ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡реЗ package.json рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреНрдпреЛрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

Package.json рдФрд░ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛


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

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд npm install рд▓рд┐рдП npm install рдХрдорд╛рдВрдб рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, npm рдиреЗ рдЙрдкрдпреБрдХреНрдд рдкреИрдХреЗрдЬ рдЙрдард╛рдПред рдпрджрд┐ рдЖрдк рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдЗрд╕ рджреМрд░рд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реА рдмрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ twilio , twilio npm install twilio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, package.json рдХреА dependencies рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИ: npm install twilio file:

 { "dependencies": {    "twilio": "^3.30.3" } } 

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

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

 npm ci #   ,    package-lock.json yarn install --frozen-lock-file #  ,    yarn.lock,     

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

Npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рдЕрдиреНрдп рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯреВрд▓реНрд╕ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд╢рди рдкреИрдХреЗрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред

рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛


рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ npm рдореЗрдВ рдЬреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рдареАрдХ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реИ, рдпрд╛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрдпрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, npm рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреМрди-рд╕реА рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрдХреБрд▓ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣реБрдБрдЪ рдХрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд .npmignore рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдФрд░ .npmignore рдлрд╝рд╛рдЗрд▓ред рдпрджрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рднреА рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ .gitignore рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рд╣рдореЗрд╢рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдХрднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЖрдк рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, npm .git рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред

рдЙрд╕рдХреЗ рдмрд╛рдж, npm рд╕рднреА рдЙрдкрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ npm pack рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ tarball рдлрд╝рд╛рдЗрд▓ рдореЗрдВ npm pack ред рдпрджрд┐ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ npm pack --dry-run рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред


Npm рдкреИрдХ -dry-run рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ

рдкрд░рд┐рдгрд╛рдореА tarball рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк npm pack --dry-run рддреЛ рдЖрдк рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ package-lock.json рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рдпрд╣ рдЯрд╛рд░рдмреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓, рдПрдирдкреАрдПрдо рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдореЗрд╢рд╛ рдЕрдирджреЗрдЦрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ package-lock.json рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрд┐рд╕реА рдФрд░ рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рд▓реЙрдХ-рдлрд╛рдЗрд▓ рдХреЗ рдЗрдирдХрд╛рд░ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣рдЯрдирд╛


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ .gitignore рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 yarn.lock package-lock.json 

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

рдЖрдк рдирд┐рдореНрди-рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде .npmrc рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ .npmrc package-lock.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 package-lock=false 

рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк yarn install --no-lockfile рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ yarn install --no-lockfile , рдЬреЛ рдЖрдкрдХреЛ yarn install --no-lockfile рдХреА рд░реАрдбрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рддрдереНрдп рд╕реЗ рдХрд┐ рд╣рдореЗрдВ package-lock.json рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред package-lock.json рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо npm-shrinkwrap.json ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ package-lock.json рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ package-lock.json ред рдЗрд╕реЗ package-lock.json рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдлрд╝рд╛рдЗрд▓ npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдорд┐рд▓рддреА рд╣реИред

рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, npm рд╕рд┐рдХреНрд░реЗрдЯрд╡реИрдк рдХрдорд╛рдВрдб рдХреЛ package.json рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╡рд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реАрдкреЛрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ json рдлрд╛рдЗрд▓ред рдЧрд┐рдЯ рдХрдо рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЖрдкрдХреЗ CI-рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдФрд░ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдорд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

рдкреИрдХреЗрдЬ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


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

рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдорд╛рди рдЖрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВ:

 npm ci --dry-run #  ,   package-lock.json   npm-shrinkwrap.json npm pack --dry-run #     ,       npm install <dep> --verbose --dry-run #            

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


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

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдиреЗ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИ рдХрд┐ рдПрдирдкреАрдПрдо рдирд┐рд░реНрднрд░рддрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рд╢реНрди рдкрд░ рдФрд░ рднреА рдЧрд╣рд░рд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрд╣рд╛рдБ рдЖрдк npm ci рдФрд░ npm install рдХрдорд╛рдВрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк рдпрд╣ package-lock.json рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ package-lock.json рдФрд░ npm-shrinkwrap.json package-lock.json npm-shrinkwrap.json рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдВ npm рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ npm-compresswrap.json рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles