рдореБрдЭреЗ E429 рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ
npm ci
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ (рдЖрдЬ рд╕реЗ рдХрдо рд╕реЗ рдХрдо)npm ci
рдХрдорд╛рдВрдб E429 рддреНрд░реБрдЯрд┐ ( рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдХреБрд▓ рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИnpm ci
рдпрд╣рд╛рдБ рднреА, рд▓реЗрдХрд┐рди npm -g install @vue/cli
ред
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz
рд╣рдорд╛рд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ 403 Forbidden
рдФрд░ 420 Too Many Requests
рдмреАрдЪ рдмрджрд▓рддреА рд╣реИрдВ
рд╣рдо рдЗрд╕реЗ AWS рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣рдорд╛рд░реЗ рдХрд┐рд╕реА рднреА рд╕реАрдЖрдИ рдХрд╛рд░реНрдп рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ
Step 8/11 : RUN npm ci
---> Running in 87051ac87a51
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@types/xxhashjs/-/xxhashjs-0.2.1.tgz
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-02-17T11_49_35_151Z-debug.log
The command '/bin/sh -c npm ci' returned a non-zero code: 1
ERROR: Job failed: exit code 1
рдмрд╛рдВрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рднреА рдореЗрд░реЗ рд▓рд┐рдП:
error 17-feb-2020 12:49:46 npm ERR! code E429
error 17-feb-2020 12:49:46 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@snyk/configstore/-/configstore-3.2.0-rc1.tgz
рдХреЗрдВрджреНрд░реАрдХреГрдд рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛: ~ (
(рдкреЛрд╕реНрдЯрдорд╛рд░реНрдЯрдо рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рд╛рдВрд╕ рдирд╣реАрдВ рд░реБрдХреА ...)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рджрд░реНрдкрдг рдХреА (рд╕рддреНрдпрд╛рдкрд┐рдд) рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓рд╛ рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рд╕рдорд╛рди, рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╕рд░реНрдХрд┐рд▓ рд╕реАрдЖрдИ рдкрд░
рд╕рд╛рде рд╣реА рд╕рд░реНрдХрд┐рд▓ рд╕реАрдЖрдИ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz
рдореИрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ ..
"рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.рдПрдирдкреАрдПрдордЬреЗрдбреНрд╕ рдУрдЖрд░рдЬреА) рдиреЗ рдЖрдкрдХреЛ рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ"
рддрдерд╛
"рдЖрдкрдХреЛ рджрд░ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ"
рдореБрдЭреЗ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
рдЬрдм рд╣рдо рд╣рд░реЛрдХреВ рдкрд░ рддреИрдирд╛рддреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрдм рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz
рд╣рд░реНрдХреЛ рдкрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдирд╛ред
рдпрд╣рд╛рдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреЛрдбрдмрд┐рд▓реНрдб рдФрд░ рдПрдирдкреАрдПрдо рдЖрдИ-рдЬреА aws-cdk рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╣реИ
28 | npm рдИрдЖрд░рдЖрд░! 429 рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз - https://registry.npmjs.org/aws-cdk рдкреНрд░рд╛рдкреНрдд
рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡рд░ рд╕рдорд╕реНрдпрд╛?
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ
npm рдИрдЖрд░рдЖрд░! рдХреЛрдб E429
npm рдИрдЖрд░рдЖрд░! 429 рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз - https://registry.npmjs.org/silent-error рдкреНрд░рд╛рдкреНрдд
рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдВрдХреБрд▓ рд╕рдВрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣рд╛рдБред
рд╕реНрд╡реАрдбрдиред
`` `рдПрдирдкреАрдПрдо рдИрдЖрд░рдЖрд░! рдХреЛрдб E429
npm рдИрдЖрд░рдЖрд░! 429 рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз - https://registry.npmjs.org/lodash рдкреНрд░рд╛рдкреНрдд
рд╣рд╛рдВ, рдореИрдВ рдЗрд╕реЗ рдЯреНрд░реИрд╡рд┐рд╕ рдкрд░ npm audit
рд▓рд┐рдП рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:
npm ERR! audit Your configured registry (https://registry.npmjs.org/) may not support audit requests, or the audit endpoint may be temporarily unavailable.
npm ERR! audit The server said:
Access denied | registry.npmjs.org used Cloudflare to restrict access
You are being rate limited
The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.
рдпрд╣рд╛рдБ рдкрд░ рдПрдХ рд╣реА рдмрд╛рдд рд╣реЛ рд░рд╣реА рд╣реИред npm update
рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
17-Feb-2020 11:47:48 npm ERR! code E429
17-Feb-2020 11:47:48 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдБред рд╣рдо рдмрд╛рдВрд╕ рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЦреБрдж рдХреА рд╕реНрдерд╛рдкрдирд╛ред
рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рд╣реА рд╕реБрд▓рдн рд╣реИ:
`` `$ Wget https://registry.npmjs.org/@babel/plugin -transform-рдмреНрд▓реЙрдХ-scoping / - / рдкреНрд▓рдЧрдЗрди-рдкрд░рд┐рдгрдд-рдмреНрд▓реЙрдХ-scoping-7.8.3.tgz
- 2020-02-17 11: 59: 28-- https://registry.npmjs.org/@babel/plugin -transform-block-scoping / - /-plugin-transform-block-scoping-7.8.3.tgz
рд░реЗрдЬреЛрд▓реНрдпреВрд╢рди рд░рдЬрд┐рд╕реНрдЯреНрд░реА .npmjs.org (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.npmjs.org) ... 104.16.17.35, 104.16.24.35, 104.16.26.35, ...
рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ редnpmjs.org (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.npmjs.org) | 104.16.17.38: 44:40 ... рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЧрдпрд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ ... 200 рдареАрдХ рд╣реИ
рд▓рдВрдмрд╛рдИ: 6735 (6.6K) [рдЖрд╡реЗрджрди / рдСрдХреНрдЯреЗрдЯ-рд╕реНрдЯреНрд░реАрдо]
рдЗрд╕ рдкрд░ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ: 'рдкреНрд▓рдЧрдЗрди-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо-рдмреНрд▓реЙрдХ-рд╕реНрдХреЛрдкрд┐рдВрдЧ-7.8.3.tgz'
рдкреНрд▓рдЧрдЗрди-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо-рдмреНрд▓реЙрдХ-рд╕реНрдХреЛрдкрд┐рдВрдЧ-7.8.3.tgz 100% [====================================== ================================================== ============================================>] 6.58K - ред 0 рдореЗрдВ рдХреЗрдмреА / рдПрд╕
2020-02-17 11:59:28 (95.5 MB / s) - 'рдкреНрд▓рдЧрдЗрди-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо-рдмреНрд▓реЙрдХ-рд╕реНрдХреВрдкрд┐рдВрдЧ-7.8.3.tgz' [6735/6735] рд╕реЗрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ `` `
рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪреАрдЬ рд╣реИ рдпрд╛ рд╢рд╛рдпрдж рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдЬрд░реНрдордиреА рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рднреА рд╣рдордиреЗ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣рд╛рдБ Gitlab CI рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдпрд╣рд╛рдБ рдиреАрджрд░рд▓реИрдВрдб рдореЗрдВ рд╣реАред (рдЖрдпрд░рд▓реИрдВрдб рд╕реЗ AWS рдХреЛрдбрдмрд┐рд▓реНрдЯ)
рд░реВрд╕ рдХреЛ
рдпрд╣рд╛рдВ рдЗрд╕реНрддрд╛рдВрдмреБрд▓
рдпрд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдПрдХ Cloudflare рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред site.npmjs.org рд╕рд╛рдЗрдЯред
рдЕрджреНрдпрддрди рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд HTML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА:
<!DOCTYPE html>
npm ERR! <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
npm ERR! <head>
npm ERR! <title>Access denied | registry.npmjs.org used Cloudflare to restrict access</title>
npm ERR! <meta charset="UTF-8" />
npm ERR! <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
npm ERR! <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
npm ERR! <meta name="robots" content="noindex, nofollow" />
npm ERR! <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
npm ERR! <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
npm ERR! <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
npm ERR! <style type="text/css">body{margin:0;padding:0}</style>
npm ERR!
npm ERR!
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script><!--<![endif]-->
npm ERR!
npm ERR!
npm ERR!
npm ERR! </head>
npm ERR! <body>
npm ERR! <div id="cf-wrapper">
npm ERR! <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
npm ERR! <div id="cf-error-details" class="cf-error-details-wrapper">
npm ERR! <div class="cf-wrapper cf-header cf-error-overview">
npm ERR! <h1>
npm ERR! <span class="cf-error-type" data-translate="error">Error</span>
npm ERR! <span class="cf-error-code">1015</span>
npm ERR! <small class="heading-ray-id">Ray ID: REDACTED • 2020-02-17 11:26:27 UTC</small>
npm ERR! </h1>
npm ERR! <h2 class="cf-subheadline">You are being rate limited</h2>
npm ERR! </div><!-- /.header -->
npm ERR!
npm ERR! <section></section><!-- spacer -->
npm ERR!
npm ERR! <div class="cf-section cf-wrapper">
npm ERR! <div class="cf-columns two">
npm ERR! <div class="cf-column">
npm ERR! <h2 data-translate="what_happened">What happened?</h2>
npm ERR! <p>The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.</p>
npm ERR! </div>
npm ERR!
npm ERR!
npm ERR! </div>
npm ERR! </div><!-- /.section -->
npm ERR!
npm ERR! <div class="cf-error-footer cf-wrapper">
npm ERR! <p>
npm ERR! <span class="cf-footer-item">Cloudflare Ray ID: <strong>REDACTED</strong></span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Your IP</span>: REDACTED</span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Performance & security by</span> <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="_blank">Cloudflare</a></span>
npm ERR!
npm ERR! </p>
npm ERR! </div><!-- /.error-footer -->
npm ERR!
npm ERR!
npm ERR! </div><!-- /#cf-error-details -->
npm ERR! </div><!-- /#cf-wrapper -->
npm ERR!
npm ERR! <script type="text/javascript">
npm ERR! window._cf_translation = {};
npm ERR!
npm ERR!
npm ERR! </script>
npm ERR!
npm ERR! </body>
npm ERR! </html>
AWS рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рдПрдХ рд╣реА рд╕рдорд╕реНтАНрдпрд╛ рд╣рдореЗрдВ-рдкреВрд░реНрд╡ -1 рдХреЛрдбрд┐рдд рдХрд░реЗрдВред рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЯреВрдЯ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╡рд╛рдкрд╕ рдХрд╛рдо рдХрд░рдирд╛ (рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЖрдпрд░рд▓реИрдВрдб рд╕реЗ)
рдпрд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдПрдХ Cloudflare рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред site.npmjs.org рд╕рд╛рдЗрдЯред
рдХреНрдпрд╛ рдХреНрд▓рд╛рдЙрдбрдлреЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рджрд░реНрдкрдг рдирд╣реАрдВ рд╣реИ?
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ! рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реА рд╣реИрдВ :(
рд╡рд╣реА: npm ERR! code E429
рдмрд╕ред рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рд╕рдмрдХреЛ рдЕрд▓рд╡рд┐рджрд╛ред
рдореИрдВ рджреЛрдкрд╣рд░ рдХрд╛ рднреЛрдЬрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рддрдм рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдореИрдВ рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рд▓реМрдЯреВрдВрдЧрд╛ред
рд╣рдо рдЗрд╕ рдмрд╛рдд рдХреА рдмрд╣реБрдд рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ npm рдореБрджреНрджрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдЙрдирдХреЗ рд╕реНрдЯреЗрдЯрд╕ рдкреЗрдЬ рдкрд░ рд╕рдм рдХреБрдЫ рдкрд░рд┐рдЪрд╛рд▓рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред рдлрд┐рд░ npm рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ?
рд╡рд╣реА рдореБрджреНрджрд╛ред AWS us-east-1
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/archy/-/archy-1.0.0.tgz
рдмрд╕ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, have рд╣рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
рд╡рд╣реА...
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz
рд╡рд╣реАред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬ, рд▓реЗрдХрд┐рди рдЖрдЬ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ npm рд╕реНрдерд╛рдкрд┐рдд рдФрд░ npm ci рдХрд░рддреЗ рд╣реБрдП 429 рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд░рд╣реЗрдВ
:(
рд╣рдо рд╕рдм рдЕрдм рд╕реБрдмрд╣ рд╕реЗ рдиреАрдЪреЗ рд╣реИрдВред рдПрдирдкреАрдПрдо рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдбрдмрд▓рд┐рди рдпрд╣рд╛рдБ
рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред 5 $ / рдкреИрдХреЗрдЬред рдореБрдЭреЗ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ рднреЗрдЬреЛред
рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред 5 $ / рдкреИрдХреЗрдЬред рдореБрдЭреЗ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ рднреЗрдЬреЛред
рдЗрддрдирд╛ рд╕рд╕реНрддрд╛
рджрдХреНрд╖рд┐рдг рдХреЛрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
$ npm install --save-dev typescript
npm ERR! code E429
npm ERR! 429 Too Many Requests: [email protected]
рдкреНрд░рддреНрдпреЗрдХ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдЕрднреА рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдПрдирдкреАрдПрдо рдХреЛ рдХреНрдпрд╛ рдЦреБрд╢реА?
рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣рдореЗрдВ рдмрд╕ рдмреИрдардиреЗ рдФрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
рд╕реЛрдЪрд┐рдП рдЕрдЧрд░ рд╣рдо рд╕рднреА рдирд┐рд░реНрдорд╛рдг рд╢реНрд░рдорд┐рдХ рдереЗ, рдФрд░ рдЕрдЪрд╛рдирдХ рд╕рднреА рд╣рдереМрдбрд╝реЛрдВ рдиреЗ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛: рд╕реЛрдЪ:
рдЕрдкрдиреЗ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдпрд╛рд░реНрдирдкреИрдХ рдорд┐рд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдпрд╣ рд╕рдм рдареАрдХ рд╣реИ http://status.npmjs.org/
рдпрд╣ рд╕рдм рдареАрдХ рд╣реИ http://status.npmjs.org/
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ЁЯШД
рдпрд╣ рдЪрд░реНрдЪрд╛ рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реБрдИ
рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/open-services/open-registry
# npm
npm config set registry https://npm.open-registry.dev
# yarn
yarn config set registry https://npm.open-registry.dev
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг (рдЯреНрд░реИрд╡рд┐рд╕, рд╕реНрдерд╛рдиреАрдп, рд╕рд░реНрд╡рд░) рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдПрдирдкреАрдПрдо: рд▓рдЧрднрдЧ рдкрд░рдлреЗрдХреНрдЯ рдорд┐рд░рд░
рдПрдирдкреАрдПрдо: рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ
рдПрдирдкреАрдПрдо: рдиреЛ рдкреНрд░реЙрдмреНрд▓рдо рдордВрдбреЗ
Gitlab рдзрд╛рд╡рдХреЛрдВ рдХреЗ рднреАрддрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдЬрдм рд╣рд░реНрдХреЛ рдореЗрдВ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕реАрдПрдл-рддреНрд░реБрдЯрд┐-рдХреЛрдб 1015ред
рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.npmjs.org) рдХреЗ рдорд╛рд▓рд┐рдХ рдиреЗ рдЖрдкрдХреЛ рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ
рдЬрдм рдореИрдВрдиреЗ npm рдЗрдВрд╕реНрдЯреЙрд▓ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА, рддреЛ рдореБрдЭреЗ рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА: " рдкреНрд░рд╡реЗрд╢ рдирд┐рд╖реЗрдзред рд░рдЬрд┐рд╕реНрдЯреНрд░реА редnpmjs.org рдиреЗ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cloudflare рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЖрдкрдХреЛ рд╕реАрдорд┐рдд рджрд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.npmjs.org) рдХреЗ рдорд╛рд▓рд┐рдХ рдиреЗ рдЖрдкрдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рд╕реЗред "
рдореИрдВ рд╕реЗрдмреВ рдлрд┐рд▓реАрдкреАрдВрд╕ рд╕реЗ рд╣реВрдБред рдпрд╣ CloudFlare рдЗрд╢реНрдпреВ рд╣реИ рдпрд╛ NPM?
рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ (рд░рдЬрд┐рд╕реНрдЯреНрд░реА.npmjs.org) рдХреЗ рдорд╛рд▓рд┐рдХ рдиреЗ рдЖрдкрдХреЛ рдЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдЬрд┐рддрдирд╛ рдордЬрд╝рд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдорд╛рди рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдиреЗ рджреЗрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдмрдЬрд╛рдп "рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХреНрд╕ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ" рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдПрдирдкреАрдПрдо рд╕реЗ рдХреБрдЫ рд╕реБрдирдиреЗ рддрдХ рдХреИрд╕реЗ рддрдВрдЧ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ? рдпрд╛ рд╣рдо рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА +1 рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдирдкреАрдПрдо: рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдирд╣реАрдВ
рд╣рдо рдпрд╣рд╛рдВ рд╕реНрд╡реАрдбрди рдореЗрдВ рднреА рдЖрдЙрдЯреЗрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ages agesтЩВages
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдмрдЬрд╛рдп "рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХреНрд╕ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ" рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдПрдирдкреАрдПрдо рд╕реЗ рдХреБрдЫ рд╕реБрдирдиреЗ рддрдХ рдХреИрд╕реЗ рддрдВрдЧ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ? рдпрд╛ рд╣рдо рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА +1 рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреАрдд рдХреЗ рд▓рд┐рдП рдирд╛рд╣, рдореЗрдореЗ рдФрд░ рдмреЗрдХрд╛рд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ
AWS рдмрд┐рд▓реНрдб рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рджреВрд╕рд░реЗ рд▓рдВрдЪ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
CircleCi рдмрд┐рд▓реНрдб рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ
Github Actions рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛!
Https://github.com/verdaccio/verdaccio/ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп
рд╡рд╛рд╣, рдЯрд┐рдкреНрдкрдгреА XD рдореЗрдВ Memes
рджреЛрд╕реНрддреЛрдВ рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдирд╛рд╡ рдкрд░ рд╣реЛрдиреЗ рдФрд░ рдХреБрдЫ рдкреНрдпрд╛рд░ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрдпрд╛рдирдХ рд╣реИ рдЬрдм рд╣рдо рдмрд╛рд╣рд░ рддрдирд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди ... рдХреНрдпрд╛ рд╣рдо рдПрдХ рджреВрд╕рд░реЗ рдХреЛ "рдореБрдЭреЗ рднреА" рдмрддрд╛рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореЗрдо рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, btw!
рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЕрддрд┐-рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред @ рдЕрдирд╛рдЪрд╛рд░реА рддреБрдо
рд╡рд╣реА!
рдПрдирдкреАрдПрдо рдиреЗ рд╕рд┐рд░реНрдл рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╣рдо рдмрд╛рдХреА рдХреЗ рджрд┐рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВред
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдБ
рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ?
рд╡рд╣реА
Npm рдореБрдЦреНрдпрд╛рд▓рдп рдЕрднреА:
рдореИрдВ рдЕрднреА npmjs рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЛ рдорд╛рдирддрд╛ рд╣реВрдВред # pic.twitter.com/wZy0Bo3PM8
- рдирд┐рдХ рд╣реИрдордВрдб (@thehappypenguin) 17 рдлрд░рд╡рд░реА, 2020
рдореБрджреНрджрд╛ рдЕрдм рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ
https://status.npmjs.org/ рд╣рд░реА n рддрдХ рд╣реИ
NPM:
рдЕрдлрд╡рд╛рд╣реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЛрд░реЛрдиреЛрд╡рд╛рдпрд░рд╕ рд╕реЗ рд╕рдВрдХреНрд░рдорд┐рдд рд╣реИрдВ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдПрдирдкреАрдПрдо рд░рдЬрд┐рд╕реНрдЯреНрд░реА / рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рд╕рдорд╛рди рдореБрджреНрджреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЬрдм рдЖрдк рдПрдирдкреАрдПрдо рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдЙрдЯреЗрдЬ рдХреЗ рдХрд╛рд░рдг рдЕрдкрдиреЗ рдРрдк рдХреЛ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рдЬрдм рдЖрдк рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддрдм рдПрдирдкреАрдПрдо рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛
рдПрдирдкреАрдПрдо рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЫреБрдЯреНрдЯреА рд▓реЗ рд▓реЗрдВ
"рд╡рд╣реА" рд▓рд┐рдЦрдирд╛ рдХрдо рд░реЗрдЯрд┐рдВрдЧ рд╣реИред
рдпрд╣рд╛рдБ Casio FX-991ESPLUS рдкрд░ рд╕рдорд╛рди рд╣реИ
NPM: рдЕрдм, рдкреЛрд╕реНрдЯ рдореЗрдо!
рдЪреАрди рд╕реЗ рдпрд╣рд╛рдБред
рдЙрд╕реА рд╕рдордп рдЬрдм npm рд╣рдорд╛рд░реЗ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ (рдЯреАрдорд╕рд┐рдЯреА) рдкрд░ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реЛред
рдореИрдВ рдЕрднреА рдПрдХ рдкрд╛рдпрдерди рдХреЛрд░реНрд╕ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ рдпрд╣ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рдореЗрдореНрд╕ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдореБрдЭреЗ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ: рдбреА
рдореИрдВрдиреЗ рдЪреЙрдХрд▓реЗрдЯ рдорд┐рд▓реНрдХ рдкрд┐рдпрд╛
рд╕рдВрдмрдВрдзрд┐рдд рдзрд╛рдЧрд╛ .. https://github.com/nextcloud/maps/issues/300
рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрд▓рд╕реА рд╡рд╣рд╛рдБ рд╕реЗ рдЕрдкрдиреА рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдВрдХ рдХрд░реВрдБрдЧрд╛ .. https://github.com/nextcloud/maps/issues/300#issuecomment -586973011
рд╣рд╛рдБ, рдореИрдВ npm ci
рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдПрдирдкреАрдПрдо: рдХреЛрдИ рдкреИрдХреЗрдЬ рдореЗрдЯ
рдореИрдВ рдЕрднреА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмреИрдардХ рдореЗрдВ рд╣реВрдБ рдФрд░ рдбреЗрдореЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: [
рдореИрдВ рдЕрднреА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмреИрдардХ рдореЗрдВ рд╣реВрдБ рдФрд░ рдбреЗрдореЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: [
soooред рдЖрдк рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП npm install
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ
рднрд╛рд░рдд рдореЗрдВ рд╕реЛрдорд╡рд╛рд░ рдХреЛ рднреА рдХреЛрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдирд╣реАрдВ India
рд╣реЗ рднрдЧрд╡рд╛рди, рдХреГрдкрдпрд╛ node_modules
рдлрд╝реЛрд▓реНрдбрд░, рдХрд┐рд╕реА рдХреЛ рднреА рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ!
рдореБрдЭреЗ рднреА
"рдСрд▓ рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рдирд▓" - рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЭреВрда
рдЕрд╕реНрдерд┐рд░ рд▓реЗрдХрд┐рди рд╕реБрдзрд╛рд░ рдирд╣реАрдВ?
рдПрдирдкреАрдПрдо: рдиреЗрд╡рд░ рдкреЙрдХреНрд╕ рдореЛрдХреНрд╕
@ рдЕрдирдВрдд-рдХреЗ-рд╕рд┐рдВрд╣ рд╣рд╛рдБ, рдореЗрдо, рддреБрдо рдХрд╣рд╛рдБ рд╣реЛ? ;-) рдлреНрд░рдВрдЯ-рдПрдВрдб рд╕рдореБрджрд╛рдп рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдВрдЧреВрдареЗ-рд░реЛрд▓рд┐рдВрдЧ рдЕрдм, рд╕рд╣реАред
... рдФрд░ рд╡рд╣ рд╕реНрдерд╛рдиреАрдп / рд╕рд╛рдЗрдЯ-рд▓реЛрдХрд▓ рдХреИрд╢рд┐рдВрдЧ npm рдкреНрд░реЙрдХреНрд╕реА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?
https://status.npmjs.org/ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ ...
рдХрд┐рд╕реА рдХреЛ рдмрд╕ рд╕реНрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП google рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдПрдХ angularjs рдиреЛрдб_рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореИрдВ рдЕрднреА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмреИрдардХ рдореЗрдВ рд╣реВрдБ рдФрд░ рдбреЗрдореЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: [
FeelsBadMan, рдЗрддрдирд╛ рдмреБрд░рд╛ "рдбреЗрдореЛ рдХреА рд╢рдХреНрддрд┐" рдХрд┐ рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИ редред
рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред
npm WARN рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЧрдпрд╛ https://github.com/request/request/issues/3142
npm рдИрдЖрд░рдЖрд░! рдХреЛрдб E429
npm рдИрдЖрд░рдЖрд░! 429 рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз - https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.5.tgz
npm рдИрдЖрд░рдЖрд░! рдЗрд╕ рд░рди рдХрд╛ рдПрдХ рдкреВрд░реНрдг рд▓реЙрдЧ рдЗрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
npm рдИрдЖрд░рдЖрд░! C: \ Users \ рд▓реЗрдиреЛрд╡реЛ \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
рдореИрдВ рдпрд╣рд╛рдВ рд╕рд┐рд░реНрдл рдореЗрдо рдХреЗ рд▓рд┐рдП рд╣реВрдВ
рдЕрд░реЗ, рдХреНрдпрд╛ рд╣рдо рдЗрд╕ GitHub рдореБрджреНрджреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдмрдВрдзрд┐рдд Slack / Discord / IRC рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдореАрдореНрд╕ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ? рд╡реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ StatusPage рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
npm рдИрдЖрд░рдЖрд░! рдХреЛрдб E429ред рдпрд╣рд╛рдБ!
"рдСрд▓ рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рдирд▓" - рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЭреВрда
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
рдпрджрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ ... рдпрджрд┐ рдЖрдк рд╣рддрд╛рд╢ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ ...
рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 403/429 рдЗрд░реЛрд╕
рдХреИрд╕реЗ рд╕рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ?
рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?
E429
рдпрд╣рд╛рдБ рднреА (рдиреАрджрд░рд▓реИрдВрдб)
Azure DevOps рджреНрд╡рд╛рд░рд╛ рдЪрд╛рд▓реВ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕ рдорд╢реАрди рд╕реЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧред
рдЕрдВрдд рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ (рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда it)
рдиреАрдЪреЗ 1 рдФрд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж рд╕реЗред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рд▓реЗрдВрдЧреЗ
Temp fix рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдкреИрдХреЗрдЬ-рд▓реЙрдХ рдЦреЛрд▓реЗрдВред json
https://registry.npmjs.org
рдФрд░ https://registry.npmjs.com
рд╕рд╛рде рдмрджрд▓реЗрдВ
npm ci
рдЪрд▓рд╛рдПрдВ
рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ am
"рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд", рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛
рдпрд╣рд╛рдБ рдордВрдЧрд▓ рдкрд░ рд╕рдорд╛рди рд╣реИред
рд╕рдм рдЖрд╢рд╛ рдЦреЛ рдЧрдИ
рдЕрдЧрд░ npm рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреБрдирд┐рдпрд╛ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд╛рд░рдХ рд╣реИ
рдЗрд╕ рдореБрджреНрджреЗ рдиреЗ рдореБрдЭреЗ рдпрд╛рд░реНрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, .. рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ред рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдореЗрд░реЗ рдЬреНрдпреЛрддрд┐рд╖реА рдиреЗ рдЗрд╕ рдШрдЯрдирд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреАред
рдореИрдВ рдЕрднреА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмреИрдардХ рдореЗрдВ рд╣реВрдБ рдФрд░ рдбреЗрдореЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: [
soooред рдЖрдк рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП
npm install
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореЗрд░рд╛ рд▓реИрдкрдЯреЙрдк рдирд╣реАрдВ рд▓рд╛рдпрд╛, рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡рд╣ рдЗрд╕реЗ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред
рдЯреАрдорд╡реНрдпреВрдЕрд░ рдиреЗ рдХрд┐рдпрд╛ рдХрд╛рдо ...
рдЬрдм рдореЗрдк рдПрдирдкреАрдПрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ
рд╣рд╛рдп рдПрдирдкреАрдПрдо рдЯреАрдо
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВрдЧреЗ?
рд╕рд╛рджрд░
рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛, рдореЗрдореНрд╕ рдХреЗ рд▓рд┐рдП рд░реБрдХрд╛ рдерд╛
рдХреГрдкрдпрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдореЗрдо рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреБрдЫ рднреА рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
npm рд╕реНрдерд╛рдкрд┐рдд рдЕрдВрдд рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛
рдореБрдЭреЗ рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ Angular9 node_modules рдорд┐рд▓рд╛ рд╣реИред рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗ
рдпрд╣ рдЬрд┐рдВрджрд╛ рд╣реИ!
@npm
рдЖрд╣, рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд╡рд╣рд╛рдБ рдЕрдм рдФрд░ рдХреЛрдИ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ :(
рдпрд╣ рдореИрдВ npm рд╕рд╛рдордиреЗ рд╕реЗ рд▓рд╛рдЗрд╡ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!
рдЪрд┐рдпрд░реНрд╕
Temp fix рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдкреИрдХреЗрдЬ-рд▓реЙрдХ рдЦреЛрд▓реЗрдВред json
https://registry.npmjs.org
рдФрд░https://registry.npmjs.com
рд╕рд╛рде рдмрджрд▓реЗрдВ
npm ci
рдЪрд▓рд╛рдПрдВ
рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдХрд╛рдо рдмрдирддрд╛ рд╣реИред
рдЪреАрдпрд░реНрд╕ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛
рдЕрд░реЗ рдирд╣реАрдВ ... рдореЗрд░реЗ рдореЗрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди !! ЁЯМК
рдХрд╛рдо рдХрд░ рд░рд╣реЗ!
рдареАрдХ рд╣реИ рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рдкреНрд░рдлреБрд▓реНрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ
Temp fix рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдкреИрдХреЗрдЬ-рд▓реЙрдХ рдЦреЛрд▓реЗрдВред json
https://registry.npmjs.org
рдФрд░https://registry.npmjs.com
рд╕рд╛рде рдмрджрд▓реЗрдВ
npm ci
рдЪрд▓рд╛рдПрдВ
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛
рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рд╢реАрд░реНрд╖рдХ " рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ " рд╕реЗ " рдмрд╣реБрдд рд╕рд╛рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ " рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдореБрджреНрджрд╛ рд╣реИ
(рдЬрдм github рдореБрджреНрджрд╛ npm рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝реА рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ)
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХреНрдпрд╛ рдЖрдкрдиреЗ rm -rf node_modules/ package-lock.json && npm install
рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?
рдбрд╛рдЙрдирд╡реЛрдЯреНрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ
https://github.com/npm/cli/issues/836#issuecomment -586973004
рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/open-services/open-registry# npm npm config set registry https://npm.open-registry.dev # yarn yarn config set registry https://npm.open-registry.dev
open-registry
рд▓рд┐рдП рд╕рднреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреНрдпреЛрдВ?
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, npm config set registry https://registry.npm.taobao.org
рдпрд╣ рдордЬреЗрджрд╛рд░ рд░рд╣рд╛ рд╣реИ
рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП node_modulesред рдореБрдЭреЗ рдЕрдЪреНрдЫреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдкрд╣рд░: рдбреА
рдХреНрдпрд╛ рдЖрдкрдиреЗ
rm -rf node_modules/ package-lock.json && npm install
рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?
рекреи реп рдмрд╣реБрдд рдбрд╛рдЙрдирд╡реЛрдЯ
рдордЬрд╝реЗ рдХрд░реЛ NPMingред
рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдм рдПрдирдкреАрдПрдо рдореЗрдореЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреА рд╣реИ
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреАрд╕реА рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд╢рд╛рдпрдж рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓реАред
рдореЗрд░реЗ рдирд┐рд░реНрдорд╛рдг рдиреЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛! рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ
рд╣реНрдпреВрд╕реНрдЯрди, рдпрд╣ рдпрд╣рд╛рдБ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП node_modulesред рдореБрдЭреЗ рдЕрдЪреНрдЫреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдкрд╣рд░: рдбреА
рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЪреАрдЬ рдЖрдк рдУрдкрди рд╕реЛрд░реНрд╕ рдХрдореНрдпреБрдирд┐рдЯреА рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ can
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕рд┐рдВрдЧрд╛рдкреБрд░ AWS рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдЕрдм рдЙрддреНрддрд░ рд╡рд░реНрдЬреАрдирд┐рдпрд╛ AWS рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЕрдм рдХрд╛рд░реНрдп рдХрд░рдирд╛ - рдХреНрд╖реЗрддреНрд░ 51 ЁЯС╜
рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдирдкреАрдПрдо рд╕рдкреЛрд░реНрдЯ рдЯреАрдо рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рд╕рдирд╛ рд╕рдм <рей
рдПрдХ рдФрд░ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд▓реЛрдЧ
рд╕рдЬреНрдЬрдиреЛрдВ, рдпрд╣ рдПрдХ рдЦреБрд╢реА рдереА!
рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рд╡рд╛рдкрд╕ рдмреБрд▓реНрдЧрд╛рд░рд┐рдпрд╛ рдореЗрдВ рдСрдирд▓рд╛рдЗрдиред рдзрдиреНрдпрд╡рд╛рдж, рд╕рд╛рдерд┐рдпреЛрдВ!
рдХреНрдпрд╛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореЗрд░рд╛ рдирд╛рдо рдЬреЗрдл рд╣реИ
CI рдКрдкрд░ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ .. рдЕрдм рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .. рдпрд╣ рдПрдХ рд╕рдореНрдорд╛рди рдХреА рдмрд╛рдд рд╣реИ
рдЗрд╕ рдЖрдЙрдЯреЗрдЬ рдиреЗ рдореБрдЭреЗ рдореЗрд░реЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЛ рдХрд╛рд░рдЧрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА, рдХреЛрдИ рдордЬрд╛рдХ рдирд╣реАрдВред
рд╣рд╛рде рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд░реЗрдВ, рдореИрдВ рдХрд┐рд╕реА рдХреЛ рднреА рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХрд╛рдо рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓рд╛ рд╕рдХрддрд╛
рдпрд╣рд╛рдВ рдмреНрд░рд┐рдЯреЗрди рдиреЗрдХреНрд╕реНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп 429 рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдареАрдХ рдереЗред рд╕рдм рдареАрдХ рд╣реИ рдЕрдм рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
рд╣рд╛рдп рдПрдирдкреАрдПрдо рдЯреАрдо
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВрдЧреЗ?
рд╕рд╛рджрд░
рдЙрдиреНрд╣реЛрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рдХрд┐рдпрд╛ !!! 3 рдмрд╛рд░...
рд╕реНрд╡реАрдбрди рдореЗрдВ рдЕрдм рдХрд╛рдо рдХрд░рдирд╛ ЁЯЗ╕ЁЯЗк!
рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдПрдирдкреАрдПрдо рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ, рддреЛ рдЖрдк рд╕рднреА рдХреЛ рджреЗрдЦреЗрдВ!
рдХрдо рд╕реЗ рдХрдо рдЧреАрдереВрдм рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рд▓рдЧрддрд╛ рд╣реИ
GitHub рдЗрдореЛрдЬреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓рд╛рдЗрд╡-рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрдореЛрдЬреА рдЖрддрд┐рд╢рдмрд╛рдЬреА рдХреА рддрд░рд╣ рд╣реИред
рдЕрдЧрд▓рд╛ рдЕрдВрдХ: рдЧрд┐рдЯрд╣рдм рдиреАрдЪреЗ рд╣реИ: рдбреА
рдХрд╛рд░рдг: NPM рдмрдЧ # 837 836 рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз
Success! created app at C:/XXXX
"рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ - рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд▓реАрд╡рд░реА рдкрд╛рд░реНрдЯрдирд░ рдиреЗ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рд╣рдо рдореЙрдирд┐рдЯрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред"
Cloudflare рд╕рдорд╕реНрдпрд╛?
рдЧреНрд░реИрдВрдб рд░реИрдкрд┐рдбреНрд╕, рдПрдордЖрдИ рдпрд╣рд╛рдВ
рдЧрд┐рддреБрдм рдкрд░ рдЗрддрдиреА рд╕рд╛рд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд░реА рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рд╣реИ - рдЖрдк рд╕рднреА рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ, рдЬрд▓реНрдж рд╣реА рдЖрдк
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдбрд╛рдЙрдирд╡реЛрдЯ * рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ! рдиреАрдЪреЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ ..
рд░рд╛рд▓реНрдл рдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рддреЛрдбрд╝ рджрд┐рдпрд╛!
рдмрд╕ рдЗрд╕реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдЪреНрдЫреА рдиреМрдХрд░реА рдПрдирдкреАрдПрдо ЁЯСН
рддреЛ рд╣рдо рд╕рднреА рдЕрдм рдореЗрдо рдмрдирд╛рддреЗ рд╣реИрдВ?
рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рдо !!!
(Https://user-images.githubusercontent.com/57898245/74657035-b1009500-518f-11ea-9e95-290b51db7dbb.png)
рдЕрдм рддрдп рд▓рдЧ рд░рд╣рд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдВ, рдореИрдВ рдХрд┐рд╕реА рдХреЛ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реВрдВ
рдирд╣реАрдВ
рдПрдирдкреАрдПрдо рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдиреЗ рдХреЗ рдореБрджреНрджреЗ :)
рдЪреВрдБрдХрд┐ рдореЗрд░рд╛ рдЖрдкрдХрд╛ рдкреВрд░рд╛ рдзреНрдпрд╛рди рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреА рдирд╡реАрдирддрдо рдкрд┐рд░рд╛рдорд┐рдб рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдБ?
рдЪреЗрдХ рдЧрдгрд░рд╛рдЬреНрдп рдореЗрдВ рдЕрдм рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ :) рдзрдиреНрдпрд╡рд╛рдж рдПрдирдкреАрдПрдо рдЯреАрдо
рдмрд▓ рдкреНрд░рдпреЛрдЧ рдПрдирдкреАрдПрдо
рдИрд░рд╛рди рдореЗрдВ рднреА рдареАрдХ рд╣реИ, рдордЬреЗрджрд╛рд░ рдореБрджреНрджрд╛!
npm рдореБрдЦреНрдпрд╛рд▓рдп рдЕрднреА рд╣реЛ
рдореЗрдореЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рд░рд╣рдиреЗ рджреЗрдВ
ЁЯЗ╡ЁЯЗ╣
рдЬрдмрд░рджрд╕реНрдд рд╣рдВрд╕реА
рдореЗрд░реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ!
рдУрд╣ рдЧреАрдЬрд╝, рдореИрдВ рдкрд╛рд░реНрдЯреА рдореЗрдВ рджреЗрд░ рд╕реЗ рдЖрдпрд╛, рдЕрднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж рдЗрдВрдЯрд░рдиреЗрдЯ!
Npm рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрдВрд╕реЛрд▓: 100:
рдЕрд░реЗ, рдореИрдВ рдпрд╣рд╛рдБ рдПрдХ рдмрдЧ рд╡рд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдБ ...
тЦ▓
тЦ▓ тЦ▓
PSHH PSHH YOBA MI V EFIRE !! 1 HтЩВя╕ПH
рд╕рднреА рдореЗрдо рдЯреНрд░реЗрди рдореЗрдВ рд╕рд╡рд╛рд░! ЁЯЪВ
рдХрд┐рд╕реА рдореБрджреНрджреЗ рдореЗрдВ рдореЗрдо / рдЪреБрдЯрдХреБрд▓реЗ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдордп рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрджреНрджреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕реЗ рд░реЛрдХред рдЬрд░реВрд░рдд рдорд╣рд╕реВрд╕ рд╣реЛрдиреЗ рдкрд░ рдЗрдореЛрдЬреА рд░рд┐рдПрдХреНрд╢рдВрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред
рд╣рдореЗрдВ рдЗрди рдХреАрдбрд╝реЛрдВ рдХреА рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реЛрдорд╡рд╛рд░ рдХреЛред
@cmcarey рдпрд╣ рдореБрд╕реНрдХреБрд░рд╛рдирд╛ рдФрд░ рд╣рдВрд╕рдирд╛ рдХрднреА рднреА рдмреБрд░реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрднреА рднреА рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдирд╣реАрдВ рдереА, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛, рдореЗрдореЗ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЗрдВрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрдЯреНрд░реЛрдЗрдЯ рднреА рдПрдХ рдЗрдВрд╕рд╛рди рдмрди рдЬрд╛рддреЗ рд╣реИрдВ!
рдЙрд╕реА GALARETKA рд╕реЗ рдирдорд╕реНрдХрд╛рд░ !!
рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдирдорд╕реНрддреЗ!
рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╕рдмрд╕реЗ рдЯрд┐рдкреНрдкрдгреА рд╡рд╛рд▓рд╛ рдореБрджреНрджрд╛ рдмрди рд╕рдХрддрд╛ рд╣реИред
рд╕реБрдЭрд╛рд╡: npm рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда рдкрд░ "CDN рд╕реЗрд╡рд╛рдУрдВ" рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ Cloudflare рдХреЗ рд╕рд╛рде рдерд╛
https://github.com/npm/cli/issues/836#issuecomment -586992790
@cmcarey рдпрд╣ рдореБрд╕реНрдХреБрд░рд╛рдирд╛ рдФрд░ рд╣рдВрд╕рдирд╛ рдХрднреА рднреА рдмреБрд░реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрднреА рднреА рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдирд╣реАрдВ рдереА, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛, рдореЗрдореЗ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЗрдВрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрдЯреНрд░реЛрдЗрдЯ рднреА рдПрдХ рдЗрдВрд╕рд╛рди рдмрди рдЬрд╛рддреЗ рд╣реИрдВ!
рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдпрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдмрд╛рдврд╝ рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╡рд┐рд╡рд░рдг рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЫрдВрдЯрдиреА рдХреЗ рдХрд╛рдо рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреНрд░рд╛рдЬреАрд▓ рдореЗрдВ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдмреНрд░рд╛рдЬреАрд▓:!
рдПрдирдкреАрдПрдо рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рдЖрдВрджреНрд░реЗ рдпрд╣рд╛рдВред рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд▓реАрд╡рд░реА рдкрд╛рд░реНрдЯрдирд░ рдиреЗ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рд╣рдо рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЖрдк рд╣рдорд╛рд░реЗ рд╕реНрдЯреЗрдЯрд╕ рдкреЗрдЬ: https://status.npmjs.org/ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдВрдж рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ support@npmjs.com рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ
@aeleuterio рдХреЛрдИ рднреА рдореМрдХрд╛ рд╣реЛ рд╣рдо рдЗрд╕ рдкрд░ рдкреЛрд╕реНрдЯрдорд╛рд░реНрдЯрдо рдХрд░рд╡рд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрднреА рд╡реНрдпрд╕реНрдд рд╣реВрдБ!
рд╣реЗ рднрдЧрд╡рд╛рдиред рдлрд┐рд░ рд╕реЗ рдРрд╕рд╛ рдордд рдХрд░реЛ! рдХрднреА! )))))
рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдореБрджреНрджрд╛ рдЖрдкрдХреЗ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
@cmcarey рдпрд╣ рдореБрд╕реНрдХреБрд░рд╛рдирд╛ рдФрд░ рд╣рдВрд╕рдирд╛ рдХрднреА рднреА рдмреБрд░реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрднреА рднреА рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдирд╣реАрдВ рдереА, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛, рдореЗрдореЗ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЗрдВрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрдЯреНрд░реЛрдЗрдЯ рднреА рдПрдХ рдЗрдВрд╕рд╛рди рдмрди рдЬрд╛рддреЗ рд╣реИрдВ!
рдореЗрдореНрд╕ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рдмрд╛рддрдЪреАрдд рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЙрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдм рдХрд╛рдо рдХрд░рдирд╛ ЁЯШУ
рдореЗрдореНрд╕ рдФрд░ рдЪреБрдЯрдХреБрд▓реЗ рдмрд╛рддрдЪреАрдд рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЙрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдПрдирдкреАрдПрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 200 рдореЗрдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдерд╛ред
рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП: рдпрд╛рд░реНрди рджрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдкреИрдХреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛: 1)
рдпрд╛рд░реНрди рдорд╣рд╛рди рд╣реИ! (рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд)
рдирдорд╕реНрдХрд╛рд░ рдФрд░ рдХреНрд▓рд╛рдЙрдбрдлрд╝реЗрдпрд░ рд╕реЗ рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛, рд╕реАрдзреЗ рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рддрд░рд╣ рдХрд╛ рдкреЛрд╕реНрдЯрдорд╛рд░реНрдЯрдоред
рдореИрдВ DDoS рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрдХ рд╣реВрдВ рдФрд░ рдЖрдЬ рд╕реБрдмрд╣ 11:06 UTC рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдирд┐рдпрдо рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕рдВрдХреЗрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рд╕рд┐рдЧреНрдирд▓ HTTP рд░реЗрдлрд░ рд╣реЗрдбрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрдорд╛рдиреНрдп рд░реЗрдлрд░ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдордиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ "рд╕реНрдкрд╖реНрдЯ рдХрдЪрд░рд╛" рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рд▓ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди "рдХреБрдЫ рднреА рдЬреЛ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ" ... рдпрд╛рдиреА рд░реЗрдлрд╝рд░ рдпреВрдЖрд░рдЖрдИ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдпрд╣ рдЦрд░рд╛рдм рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред
рддреЛ ... рдпрд╣ рдкреНрд░рднрд╛рд╡ npmjs.org рдкрд░ рдХреНрдпреЛрдВ рдкрдбрд╝рд╛? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдирдкреАрдПрдо рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реЗрдлрд╝рд░ рдХреЛ "рдЗрдВрд╕реНрдЯреЙрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдорд╛рдиреНрдп рд╣реИред рдЪреВрдВрдХрд┐ рдПрдирдкреАрдПрдо рднреА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк DDoS рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ HTTP рдмрд╛рдврд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд░-рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдЬрдм рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ NPM HTTP 429s рдореЗрдВ рд╡реГрджреНрдзрд┐ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рджреЗрдЦрд╛ рдЧрдпрд╛) рд╣рдордиреЗ NPM рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рдВрдЪ рд╢реБрд░реВ рдХреАред рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдореВрд▓ рдХрд╛рд░рдг рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣рдордиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛, рдЬреЛ 13:00 UTC рдкрд░ рдерд╛ред
рд╣рдо рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рдПрдирдкреАрдПрдо рдФрд░ 1 рдЕрдиреНрдп рд╕рд╛рдЗрдЯ HTTP рдХрд▓реНрдкрдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдлрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдо рдЗрд╕ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкрдиреА рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА рдкреНрд░рднрд╛рд╡ рдЦреЛрдЬ рд╕рдХреЗрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░ рд╕рдХреЗрдВред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг @ buro9 рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рд╕рдореБрджрд╛рдп рдХреЛ рдорд╣рддреНрд╡ рджреЗрддреЗ рд╣реБрдП, рдЖрдкрдХреЗ рдкрд╛рд╕ NPM рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рд╣реЛрдВрдЧреЗред
рд╣рдо рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ) рдЖрдЬ рд╕реБрдмрд╣ рдпреВрд░реЛрдкреАрдп рд╕рдВрдШ рдХреЗ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рдШрдВрдЯреЛрдВ рдХреЗ рджреМрд░рд╛рди 2 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдереЗред рдпрд╣ рднреА рд╣рдо рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рдШрдЯрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдЙрдкрд╛рдп рд╣реЛрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рдЕрдиреБрд░реЛрдз HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рдЕрдиреБрд░реЛрдз HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
Referer рд░рд┐рдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА 5464950 рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдПрдХ рдФрд░ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╣рд░ 15 рдорд┐рдирдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред
@ buro9 рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЯрд┐рдХрдЯ рдФрд░ рд╣рдорд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рд╕реБрд╕реНрдд
HTTP рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╣реИ, рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдЬ рд╕реАрдПрдл рдореЗрдВ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ "HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди" рдЕрдЪрд╛рдирдХ рд╣реБрдЖ?
рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╣рдорд╛рд░реЗ рдЦреБрд▓реЗ рдЯрд┐рдХрдЯреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рджреЛ рдЖрдЙрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдорд╛рд░реНрдЯрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реВрдВрдЧрд╛, рд╣рдо рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдзреЗ рд╕реАрдЦреЗрдВрдЧреЗ, рдЗрд╕реЗ рдЬреАрдердм рдкрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред ред
Cloudflare рд╕реЗ рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛ рдФрд░ рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛,
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЛ рдорд╛рдлреА рдорд╛рдВрдЧрдиреА рдкрдбрд╝реЗрдЧреАред npm рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░реЗрдлрд░рд▓ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЧрд▓рддреА рд╕реЗ рдЕрддреАрдд рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреМрди рдЧрд╛рд░рдВрдЯреА рджреЗрдЧрд╛ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХрд▓реНрдкрдирд╛ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ?
npm рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░реЗрдлрд░рд▓ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЧрд▓рддреА рд╕реЗ рдЕрддреАрдд рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рдмреАрд╕реА рдмреНрд░реЗрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рди 'рд╕рдВрд╕реНрдХрд░рдг' рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
npm рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░реЗрдлрд░рд▓ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЧрд▓рддреА рд╕реЗ рдЕрддреАрдд рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рдмреАрд╕реА рдмреНрд░реЗрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рди 'рд╕рдВрд╕реНрдХрд░рдг' рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдБ, рдореИрдВ рддреБрдореНрд╣реЗрдВ рд╡рд╣ рдмрд╛рдд рджреЗрддрд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд░реНрдгрдп "рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХреЛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП" рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
(...)
рд╣рдордиреЗ рдПрдХ рдирд┐рдпрдо рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕рдВрдХреЗрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рд╕рд┐рдЧреНрдирд▓ HTTP рд░реЗрдлрд░ рд╣реЗрдбрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрдорд╛рдиреНрдп рд░реЗрдлрд░ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред
(...)
рддреЛ ... рдпрд╣ рдкреНрд░рднрд╛рд╡ npmjs.org рдкрд░ рдХреНрдпреЛрдВ рдкрдбрд╝рд╛? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдирдкреАрдПрдо рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реЗрдлрд╝рд░ рдХреЛ "рдЗрдВрд╕реНрдЯреЙрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдорд╛рдиреНрдп рд╣реИред
рдХреНрдпрд╛ Referer
рд╣реЗрдбрд░ рд╕рд╛рдкреЗрдХреНрд╖ / рдЖрдВрд╢рд┐рдХ URI рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ? https://tools.ietf.org/html/rfc7231#section -5.5.2
5.5.2. Referer The "Referer" [sic] header field allows the user agent to specify a URI reference for the resource from which the target URI was obtained (i.e., the "referrer", though the field name is misspelled). A user agent MUST NOT include the fragment and userinfo components of the URI reference [RFC3986], if any, when generating the Referer field value. Referer = absolute-URI / partial-URI
рдпреВрдЖрд░рдЖрдИ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛, рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрд╢рд┐рдХ-рдпреВрдЖрд░рдЖрдИ рд╕реЗ рдордирдорд╛рдирд╛, urlencoded рдкрд╛рда рдХреИрд╕реЗ рднреЗрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрджрд┐ рдореИрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреА рдХрдЯреМрддреА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдПрдХ Referer
рд╣реЗрдбрд░ install
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
https://tools.ietf.org/html/rfc7230#section -2.7
relative-part = <relative-part, see [RFC3986], Section 4.2> partial-URI = relative-part [ "?" query ]
https://tools.ietf.org/html/rfc3986#section -4.2
relative-ref = relative-part [ "?" query ] [ "#" fragment ] relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
https://tools.ietf.org/html/rfc3986#section -3.3
path-noscheme = segment-nz-nc *( "/" segment ) segment = *pchar segment-nz = 1*pchar segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) ; non-zero-length segment without any colon ":" pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореИрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХрд╛ рдмрд╣реБрдд рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛: рд╣реЗрдХ рдХреЗ рдкрд╛рд╕ рд░реЗрдлрд░ рд╣реЗрдбрд░ рдХреЛ рдЕрдорд╛рдиреНрдп рдХреНрдпреЛрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ Cloudflare рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрд╕ URI рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ), рдпрд╛ рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рд╢реВрдЯ рдлрд╛рд╕реНрдЯ-рдПрдВрдб-рд▓реВрдЬ "рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк" рд╣реИ?
@datenwolf рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ install
рддрд░рд╣ рдЖрдВрд╢рд┐рдХ URI рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдкрдХреЗ рдЙрджреНрдзреГрдд рдкрд╛рда рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХреИрд╕реА рд╣реИрдВ:
If the target URI was obtained from a source that does not have its
own URI [...], the user agent MUST either exclude the
Referer field or send it with a value of "about:blank".
рдпрд╣ рдЗрдореНрд╣реЛ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрдкрдХреЗ рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╖рдп рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ: 1) http рдпреБрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк npm рд╣реИ, рдФрд░ 2) CF рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд╣рдЪрд╛рди рдирд┐рдпрдореЛрдВ рдХрд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рд╣реИ: рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ "рдХреБрдЫ" рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдлреА рдорд╛рдВрдЧрдиреЗ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХреАрдбрд╝реЗ рдЦрд╝рддреНрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ "рд╕рдорд╛рдзрд╛рди" рдХреЗ рд▓рд┐рдП рд╢рдмреНрдж рдереЛрдбрд╝рд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЬреЛ рднреА рд╣реЛред
рдкрд╣рд▓реЗ рджрд┐рди block mode
рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП observe mode
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
@datenwolf рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд░реВрдк рд╕реЗ likenstall` рдЬреИрд╕реЗ рдЖрдВрд╢рд┐рдХ URI рдХрд╛ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдкрдХреЗ рдЙрджреНрдзреГрдд рдкрд╛рда рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХреИрд╕реА рд╣реИрдВ:
If the target URI was obtained from a source that does not have its own URI [...], the user agent MUST either exclude the Referer field or send it with a value of "about:blank".
рдпрд╣ рдЗрдореНрд╣реЛ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рдБ рдпрд╣ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд┐рдВрджреБ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рдЪреБрдХреЗ рд╣реИрдВ
(...) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╖рдп рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ: 1) http рдпреБрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк npm рд╣реИ, рдФрд░ 2) CF рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд╣рдЪрд╛рди рдирд┐рдпрдореЛрдВ рдХрд╛ рдХрд░рддрд╛ рд╣реИред (...)
рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛, рдХрд┐ Referer
URI рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЬрд╛рдБрдЪ рдХреЗ рдмрд┐рдирд╛, рд╣реЗрдбрд░ рдХреА рд╡реИрдзрддрд╛ рддрдп рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
рдХреНрдпрд╛ npm рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ? рдЬрд╝рд░реВрд░ред
рдХреНрдпрд╛ CF рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреЗрд╡рд▓ рдпреВрдЖрд░рдЖрдИ рдХреА рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЬрд╛рдВрдЪ рдХрд░рдХреЗред рдХреНрдпрд╛ CF рдЙрд╕ рдЬрд╛рдБрдЪ рдХреЛ рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ ... рдЕрднреА рддрдХ (рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдореИрджрд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЧреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╣реИ рдХрд┐ рд╕реАрдПрдл рдиреЗ рдлрд┐рд░ рд╕реЗ рд╕реАрдПрдл рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдмреАрдорд╛рд░ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ ... рдлрд┐рд░ рднреАред
рдпрд╣ рд╕рдм рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдмрд╣реБрдд рдХрдо рд╣реИ рдХрд┐ рдПрдХ рд╕реАрдбреАрдПрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ рдЙрдирдХреА рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЬреЛ "рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рддреЛрдбрд╝рдиреЗ" рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛рддрд╛ рд╣реИред рд╕реАрдПрдл рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдХреА рдкреНрд░рдХреГрддрд┐ рдФрд░ рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХреА рдЕрдЪреНрдЫреА-рдЦрд╛рд╕реА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдореЗрд╢рд╛ рдЖрдЧ рд╕реЗ рдЦреЗрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╡реЗ рдЕрдиреНрдпрдерд╛ рдХреНрд╖рдореНрдп рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд░рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЧрд▓рддрд┐рдпрд╛рдВред
рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЗрд╕ npm рдХреА рдмрд╛рдд рд╣реЛ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХреА рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрди рдкрд░ рдкрдЫрддрд╛рд╡рд╛ рдХрд░рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реИред рд╡реЗ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, npm (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреВрд░реЗ JS рд╕рдореБрджрд╛рдп) рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреБрд░реЗ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдФрд░ рдЖрдЙрдЯреЗрдЬ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реБрдП, рдФрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдмрд┐рд▓реНрдб рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдХреНрд▓рд╛рдЙрдбрдлреЗрдпрд░ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдЪрд▓реЛ рдпрд╣рд╛рдБ рджрдпрд╛рд▓реБ рд╣реЛред
рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ npm рди рддреЛ рдкрддреНрд░ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИ рдФрд░ рди рд╣реА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ HTTP рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреА рднрд╛рд╡рдирд╛, рд░реЗрдлрд░ рд╣реЗрдбрд░ рдХреЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЙрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдз рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ HTTP рдкреИрджрд▓ рд╕реЗрдирд╛ рдХреА рдирд┐рдореНрди рдмрд╛рдврд╝ рдЙрдкрдпреЛрдЧреА рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕реБрдЦрдж рд▓рдЧрддреА рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рддрд░рд╣ рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдХреБрдЫ рдФрд░ рдХрд░реЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрдЧрд╛ :)
рд╕реАрдПрдл рдиреЗ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ HTTP рд╣реЗрдбрд░ рдХреЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЛ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдорд╛рдирд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди, рд░реЗрдлрд╝рд░ рд╣реЗрдбрд░ рдЖрдорддреМрд░ рдкрд░ рдпрд╛ рддреЛ рдЧрд╛рдпрдм рд░рд╣реЗрдЧрд╛, about:blank
, рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп URLред рддреЛ Referer: install
рдЬреИрд╕рд╛ рд╣реИрдбрд░ рдЕрдЬреАрдм рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐: рд╡рд┐рдирд┐рд░реНрджреЗрд╢ "URI" рдХрд╣рддрд╛ рд╣реИред рдпрд╣ "URL" рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп URL" рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред IETF рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ "URI" рдмрдирд╛рдо "URL" рдХреЗ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдмрд╛рд▓-рдмрдВрдЯрд╡рд╛рд░реЗ рдХреА рдЪрд░реНрдЪрд╛ рдЬреЛ рдЕрдХреНрд╕рд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ Referer рдкрд╣рд▓реА рдмрд╛рд░ rfc1945 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдерд╛), _and_ рдХрд┐ HTTP рд╕реНрдкреЗрдХреНрд╕ рдиреЗ "URI" рдХреЛ рдХрдИ рджреМрд░ рдХреЗ рдЕрдкрдбреЗрдЯ рдФрд░ рд░рд┐рд╡реАрдЬрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рдЦрд╛ рд╣реИ, рдореБрдЭреЗ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ _intent_ рдпрд╣рд╛рдБ Referer рдХреЗ рд▓рд┐рдП рдПрдХ URL рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп URI рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд╛рде рд╣реА рдкрддреНрд░ рднреАред рдХрд▓реНрдкрдирд╛ред
рдПрдХ URI рдФрд░ рдПрдХ URL рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдмрд╛рдж рдХреЗ RFC рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╕реЗ рджреЛрдиреЛрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП RFC рдХреЛ рдЕрдкрдбреЗрдЯ рдФрд░ рдЖрдмрдВрдЯрд┐рдд (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдФрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рд░рд┐рд╕реЛрд░реНрд╕ рд▓реЛрдХреЗрд╢рди рдФрд░ рдкрд╣рдЪрд╛рди рдорд╛рдирдХреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реВрдХреНрд╖реНрдо рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗред
рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ: HTTP Referer
рд╣реИрдбрд░ рдХреЛ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рд░рд┐рд╕реЛрд░реНрд╕ _Locator_ рд╣реЛрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рд░рд┐рд╕реЛрд░реНрд╕ _Identifier_ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдпреВрдЖрд░рдЖрдИ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рд╕рд╛рдкреЗрдХреНрд╖ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреВрд░реНрдг рд░реВрдк рд╣реИред рдЗрд╕ рдкрд░ рдХреЗрд╡рд▓ рд╕реАрдорд╛ рдпрд╣ рд╣реИ рдХрд┐ (рдП) рдпрд╣ рдПрдХ рдпреВрдЖрд░рдЖрдИ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ (рдмреА) рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдирд╛, рддрдм рдпрд╣ _must_ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдПрдХ рдпреВрдЖрд░рдЖрдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ _not_ рдХрд┐рд╕реА рднреА рджрд┐рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдПрдЬреЗрдВрдЯ, рдпрд╛ рдХрд┐рд╕реА рднреА рджрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпреЛрдЧреНрдп, рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп, рдпрд╛ resolveable рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рддреЛ, install
рдЙрд╕ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдмрд╛рддрдЪреАрдд рдХреА, рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрддрд╛ рдкрдЯреНрдЯреА рдореЗрдВ url рдХреЛ рдЯрд╛рдЗрдк рдпрд╛ рдЯреИрд░рдмреЙрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ npm install
рдЯрд╛рдЗрдк рдХрд┐рдпрд╛, рдФрд░ _it_ рдиреЗ HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдХреБрдЫ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрдбрд╝реЗред рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред "рдЗрдВрд╕реНрдЯреЙрд▓" рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕реНрдХреАрдо-рдХрдо (рдпрд╛рдиреА, рдкреВрд░реА рддрд░рд╣ рд╕реЗ qulified рдирд╣реАрдВ рд╣реИ) URI рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдпреВрдЖрд░рдЖрдИ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрдирдХреА рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ, рдПрдХ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ install
рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, tel:+12345678901
рдПрдХ рд╡реИрдз URI (рдФрд░ рдПрдХ рдорд╛рдиреНрдп URL) рд╣реИ, рд▓реЗрдХрд┐рди http:+12345678901
рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ +12345678901
рдПрдХ рд╡реИрдз рдЖрдВрд╢рд┐рдХ URI рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреА рд▓реЛрдХрддрд╛рдВрддреНрд░рд┐рдХрддрд╛ рдЕрдореЗрд░рд┐рдХрд╛ рдХреЗ рдЙрддреНрддрд░рдкреВрд░реНрд╡реА рдУрд╣рд┐рдпреЛ рдХреА рдЯреЗрд▓реАрдлреЛрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред рдпрджрд┐ рдЙрд╕ рдирдВрдмрд░ рдкрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрд▓реАрдлреЛрди рдХреЙрд▓ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП +12345678901
рдПрдХ рд░реЗрдлрд░ рд╣реЗрдбрд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдРрд╕реА рдЯреЗрд▓реАрдлреЛрди рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рдпрд╣реА npm рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд░реЗрдлрд░ рд╣реИрдбрд░ рднреЗрдЬрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред (рдЬрдм рдХрдорд╛рдВрдб рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ /
рдпрд╛ \
рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХрд╛ рдкреБрдирд░реНрдирд┐рдзрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдирд┐рдЬреА рдкрде, url, рдпрд╛ git repo рд╣реЛ рд╕рдХрддрд╛ рд╣реИред) рдпрд╣ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдПрдХ рд╕рд╣реА рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрджрд░реНрдн рдореЗрдВ HTTP рд░реЗрдлреЗрд░рд░ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдФрд░ рдпрд╣ рдореЗрд░рд╛ рдИрдорд╛рдирджрд╛рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ, рдЬреЛ рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, IETF рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрди, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдЙрджреНрджреЗрд╢реНрдп рдирд╣реАрдВ рдерд╛ Referer рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди, рдпрд╣ "URI" рдХреЗ рдмрдЬрд╛рдп "URL" рдХрд╣рд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдмрд╕ рдлрд┐рд░ рд╕реЗ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрд▓рд╛рдЙрдбрдлреЗрдпрд░ рдПрдХ рдмреБрд░рд╛ рдЕрднрд┐рдиреЗрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣ рджреЗрдЦрдХрд░ рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд▓реЛрдЧ "рдкрдХреНрд╖реЛрдВ рдХреЛ" рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рддреЗрдЬ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдпреБрджреНрдз рдореЗрдВ рдПрдирдкреАрдПрдо рдмрдирд╛рдо рдХреНрд▓рд╛рдЙрдбрдлреЗрдпрд░ рд╣реИред рд╣рдо рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдПрдХ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдереЗ, рд▓реЗрдХрд┐рди рд╣рдо рдХрднреА-рдХрднреА рдЙрди рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдирдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реЗ рд╕рдордп-рд╕рдордп рдкрд░ рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдордиреБрд╖реНрдп рдФрд░ рдорд╢реАрдиреЗрдВ рд╕рд╣реА рдирд╣реАрдВ рд╣реИрдВред рдмрд╕, рджреБрдирд┐рдпрд╛ рдХреИрд╕реА рд╣реИред рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реА, рд╣рдореЗрдВ рдорд┐рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рд╣реИрдВ, рдФрд░ рд╣рдо рд╕рднреА рдиреЗ рдЗрд╕ рд╣рд┐рдЪрдХреА рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдЕрдкрдиреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред
рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, "рд░реЗрдлрд░рд░" рдХреЛ рдпреВрдЖрд░рдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреБрдХреНрддрд┐ рджреЗрдЦреЗрдВ: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.5.2 ред рдпрд╣ рдПрдХ рдпреВрдЖрд░рдЖрдИ рд╕рдВрджрд░реНрдн рд╣реИред рдЕрдиреБрд░реЛрдз "URI" рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ "рдЗрдВрд╕реНрдЯреЙрд▓" рдХреЛ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@reschke рдЙрд╕ рдкрдврд╝рдиреЗ рдкрд░ рднреА, рдпрд╣ рдЕрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реИред
рд╡рд╣ рд╣реИ: https://registry.npmjs.org/foo
, Referer: install
, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд░реЗрдлрд░ https://registry.npmjs.org/install
, рдПрдХ рдорд╛рдиреНрдп URI рд╣реЛрдЧрд╛ред https://registry.npmjs.org/foo/-/foo-1.2.3.tgz
, рдпрд╣ https://registry.npmjs.org/foo/-/install
, рдПрдХ рдорд╛рдиреНрдп URI рднреАред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХреЛ рдЕрдиреБрдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░реЗрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдХрд╛ "рдЙрд▓реНрд▓рдВрдШрди" рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд╖рдореНрдп рд╣реИ!) рдмреНрд▓реЙрдХ рдпрд╛ рджрд░-рд╕реАрдорд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реЗрдлрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣реЗрдбрд░ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп URL рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрднрд╡рддрдГ _would_ рдХреЗ рд▓рд┐рдП Referer рд╣реЗрдбрд░ рдкрд░ рдПрдХ рдпреЛрдЬрдирд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рд╣реИ рдЬреЛ npm рдХреНрд▓реА рднреЗрдЬрддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢реЛрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рджреНрд╡рд╛рд░рд╛ рдордВрдЧрд╡рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рд╕рд┐рд░реНрдл рдХрдо рдЖрджрд░реНрд╢ рдбреЗрдЯрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд░реНрде рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕реЗ npm-command: install
ред рд╣рдо рдЗрд╕реЗ npm-session
рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдкрд╛рдП рдЧрдП рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдпрд╣ рдХрд╕реНрдЯрдо рд╣реЗрдбрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдПрдирдкреАрдПрдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ (рдпрд╛ рдкрд░) рдХрдо рд╕реЗ рдХрдо, рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ)ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрдХрд╛рд░ рдФрд░ рдХреНрд▓рд╛рдЙрдбрдлрд╝реЗрдпрд░ рд╕реЗ рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛, рд╕реАрдзреЗ рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рддрд░рд╣ рдХрд╛ рдкреЛрд╕реНрдЯрдорд╛рд░реНрдЯрдоред
рдореИрдВ DDoS рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрдХ рд╣реВрдВ рдФрд░ рдЖрдЬ рд╕реБрдмрд╣ 11:06 UTC рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдирд┐рдпрдо рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕рдВрдХреЗрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рд╕рд┐рдЧреНрдирд▓ HTTP рд░реЗрдлрд░ рд╣реЗрдбрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрдорд╛рдиреНрдп рд░реЗрдлрд░ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдордиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ "рд╕реНрдкрд╖реНрдЯ рдХрдЪрд░рд╛" рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рд▓ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди "рдХреБрдЫ рднреА рдЬреЛ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ" ... рдпрд╛рдиреА рд░реЗрдлрд╝рд░ рдпреВрдЖрд░рдЖрдИ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдпрд╣ рдЦрд░рд╛рдм рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред
рддреЛ ... рдпрд╣ рдкреНрд░рднрд╛рд╡ npmjs.org рдкрд░ рдХреНрдпреЛрдВ рдкрдбрд╝рд╛? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдирдкреАрдПрдо рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реЗрдлрд╝рд░ рдХреЛ "рдЗрдВрд╕реНрдЯреЙрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдорд╛рдиреНрдп рд╣реИред рдЪреВрдВрдХрд┐ рдПрдирдкреАрдПрдо рднреА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк DDoS рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ HTTP рдмрд╛рдврд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд░-рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдЬрдм рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ NPM HTTP 429s рдореЗрдВ рд╡реГрджреНрдзрд┐ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рджреЗрдЦрд╛ рдЧрдпрд╛) рд╣рдордиреЗ NPM рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рдВрдЪ рд╢реБрд░реВ рдХреАред рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдореВрд▓ рдХрд╛рд░рдг рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣рдордиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛, рдЬреЛ 13:00 UTC рдкрд░ рдерд╛ред
рд╣рдо рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рдПрдирдкреАрдПрдо рдФрд░ 1 рдЕрдиреНрдп рд╕рд╛рдЗрдЯ HTTP рдХрд▓реНрдкрдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдлрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдо рдЗрд╕ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкрдиреА рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА рдкреНрд░рднрд╛рд╡ рдЦреЛрдЬ рд╕рдХреЗрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░ рд╕рдХреЗрдВред