{"id":322380,"date":"2021-04-30T09:00:45","date_gmt":"2021-04-30T09:00:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=322380"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=322380","title":{"rendered":"\u0422\u043e\u043b\u044c\u043a\u043e 39% \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 node_modules \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b \u0432 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u043c Angular \u043f\u0440\u043e\u0435\u043a\u0442\u0435"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><strong>39%<\/strong> \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>node_modules<\/code> \u0432 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u043c Angular \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>ng new my-app<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 node_modules. \u0412\u0435\u0434\u044c \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0436\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0442\u0430\u043a \u0436\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u043d\u0443 \u0438, \u0447\u0435\u0433\u043e \u043a\u0440\u0438\u0432\u0438\u0442\u044c \u0434\u0443\u0448\u043e\u0439, \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043e StackOverflow. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yc\/dp\/cj\/ycdpcjo5oq8py5hwvekc4spkggs.jpeg\"><\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"kak-sravnit-funkcii-v-javascript\">\u041a\u0430\u043a \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 Javascript?<\/h2>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0444\u0443\u043d\u043a\u0446\u0438 \u0432 javascript, \u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0432\u0438\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const a = () =&gt; 'hi'; a.toString(); \/\/ &quot;() =&gt; 'hi'&quot;<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"a-esli-nazvaniya-peremennyh-raznye\">\u0410 \u0435\u0441\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0435?<\/h3>\n<p>  <\/p>\n<p>\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"https:\/\/github.com\/mishoo\/UglifyJS\" rel=\"nofollow noopener noreferrer\">Uglifyjs<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0443\u0434\u0430\u043b\u0438\u0442 \u043b\u0438\u0448\u043d\u0435\u0435, \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0449\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<h2 id=\"kak-zhe-izvlech-funkcii-iz-javascript-fayla\">\u041a\u0430\u043a \u0436\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 Javascript \u0444\u0430\u0439\u043b\u0430?<\/h2>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 <a href=\"https:\/\/esprima.org\/\" rel=\"nofollow noopener noreferrer\">Esprima<\/a>. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0441\u0438\u043c \u0444\u0430\u0439\u043b \u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u043c AST \u0434\u0435\u0440\u0435\u0432\u043e. \u0414\u0443\u043c\u0430\u044e \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e <strong>Uglifyjs<\/strong>, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0441\u0445\u043e\u0434\u0443 \u043d\u0435 \u0437\u0430\u0432\u0435\u043b\u043e\u0441\u044c, \u0430 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u043b\u043e \u043b\u0435\u043d\u044c.<\/p>\n<p>  <\/p>\n<h2 id=\"v-obschem-plan-deystviy-ya-narisoval-sleduyuschiy\">\u0412 \u043e\u0431\u0449\u0435\u043c \u043f\u043b\u0430\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439<\/h2>\n<p>  <\/p>\n<ol>\n<li>\u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 <code>*.js<\/code> \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438<\/li>\n<li>\u041f\u0430\u0440\u0441\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432 <code>ArrowFunctionExpression<\/code>, <code>FunctionExpression<\/code> \u0438 <code>FunctionDeclaration<\/code><\/li>\n<li>\u0423\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>UglifyJs<\/code> \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0435\u0451 \u0432 \u0444\u0430\u0439\u043b, \u0438\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u044d\u0442\u043e \u0445\u0435\u0448 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>\u0412 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>info.csv<\/code> \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 id \u0437\u0430\u043f\u0438\u0441\u0438, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0430\u0439\u043b\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u044b\u043b\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438 \u0445\u0435\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0444\u0430\u0439\u043b <code>info.csv<\/code> \u0432 <code>SQLite<\/code> \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u043e \u043d\u0435\u043c\u0443 \u0432\u0441\u044f\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0432\u0435\u0434\u044c \u044d\u0442\u0430 \u0431\u0430\u0437\u0430 \u2014 <a href=\"https:\/\/habr.com\/ru\/post\/547448\/\">\u043d\u0435 \u0438\u0433\u0440\u0443\u0448\u043a\u0430<\/a>!<\/li>\n<\/ol>\n<p>  <\/p>\n<h3 id=\"detali-realizacii\">\u0414\u0435\u0442\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u0412\u0441\u0435\u043c \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0438 \u0444\u0443\u043d\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u044f \u0434\u0430\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 <code>z<\/code>;<\/li>\n<li>\u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u0432 <code>MORK<\/code>, \u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0443\u0447\u0435\u0442\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439, \u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443;<\/li>\n<li>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441 \u044d\u0442\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u044f \u043f\u043e\u0442\u0435\u0440\u044f\u043b \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043d\u0443 \u0438 \u043b\u0430\u0434\u043d\u043e!<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"primer-izvlecheniya-funkciy-iz-fayla\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430<\/h3>\n<p>  <\/p>\n<p>\u041a\u043e\u0434 javascript \u0444\u0430\u0439\u043b\u0430, \u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">(function () {     const arbuz = (test) =&gt; {         function apple(t) {             function test () {                 return 'ttt';             }             return t + 3;         }         const aa = 1;         const b1 = () =&gt; 2;         \/\/ comment         return aa + b1() + apple(test);     }     return arbuz;  })();<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">&quot;const z=function(){return n=&gt;{return 3+(n+3)}};&quot;; &quot;const z=n=&gt;{return 3+(n+3)};&quot;; &quot;function MORK(n){return n+3}&quot;; &quot;function MORK(){return&quot;ttt&quot;}&quot;; &quot;const z=()=&gt;2;&quot;;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/gurov\/identical-functions\/blob\/master\/index.js\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a><\/p>\n<p>  <\/p>\n<h2 id=\"pervyy-obekt-issledovaniya-node_modules-defoltnogo-proekta-angular-11\">\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f: node_modules \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Angular 11<\/h2>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>@angular\/cli<\/code>: <code>ng new my-app<\/code>, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 <code>node_modules<\/code> \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u043e\u0447\u044c.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c package.json<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"json\">{   &quot;name&quot;: &quot;my-app&quot;,   &quot;version&quot;: &quot;0.0.0&quot;,   &quot;scripts&quot;: {     &quot;ng&quot;: &quot;ng&quot;,     &quot;start&quot;: &quot;ng serve&quot;,     &quot;build&quot;: &quot;ng build --prod&quot;,     &quot;test&quot;: &quot;ng test&quot;,     &quot;lint&quot;: &quot;ng lint&quot;,     &quot;e2e&quot;: &quot;ng e2e&quot;   },   &quot;private&quot;: true,   &quot;dependencies&quot;: {     &quot;@angular\/animations&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/common&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/compiler&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/core&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/forms&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/platform-browser&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/platform-browser-dynamic&quot;: &quot;~11.2.10&quot;,     &quot;@angular\/router&quot;: &quot;~11.2.10&quot;,     &quot;rxjs&quot;: &quot;~6.6.0&quot;,     &quot;tslib&quot;: &quot;^2.0.0&quot;,     &quot;zone.js&quot;: &quot;~0.11.3&quot;   },   &quot;devDependencies&quot;: {     &quot;@angular-devkit\/build-angular&quot;: &quot;~0.1102.9&quot;,     &quot;@angular\/cli&quot;: &quot;~11.2.9&quot;,     &quot;@angular\/compiler-cli&quot;: &quot;~11.2.10&quot;,     &quot;@types\/jasmine&quot;: &quot;~3.6.0&quot;,     &quot;@types\/node&quot;: &quot;^12.11.1&quot;,     &quot;codelyzer&quot;: &quot;^6.0.0&quot;,     &quot;jasmine-core&quot;: &quot;~3.6.0&quot;,     &quot;jasmine-spec-reporter&quot;: &quot;~5.0.0&quot;,     &quot;karma&quot;: &quot;~6.1.0&quot;,     &quot;karma-chrome-launcher&quot;: &quot;~3.1.0&quot;,     &quot;karma-coverage&quot;: &quot;~2.0.3&quot;,     &quot;karma-jasmine&quot;: &quot;~4.0.0&quot;,     &quot;karma-jasmine-html-reporter&quot;: &quot;^1.5.0&quot;,     &quot;protractor&quot;: &quot;~7.0.0&quot;,     &quot;ts-node&quot;: &quot;~8.3.0&quot;,     &quot;tslint&quot;: &quot;~6.1.0&quot;,     &quot;typescript&quot;: &quot;~4.1.5&quot;   } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 package-lock.json <a href=\"https:\/\/github.com\/gurov\/identical-functions\/blob\/master\/my-app-angular\/package-lock.json\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a><\/p>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"rezultaty\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h3>\n<p>  <\/p>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435 node_modules <strong>26982<\/strong> *.js \u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">$ find . -name '*.js' | wc -l 26982<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0432 \u043d\u0438\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u043e <strong>338230<\/strong> \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">sqlite&gt; select count(*) from info; 338230<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 <strong>130886<\/strong> \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445:<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">sqlite&gt; Select count(*) from (SELECT hash, count(id) as c FROM info group By hash); 130886<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c <code>130886\/338230 * 100% =<\/code><strong>39%<\/strong> \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445.<\/p>\n<p>  <\/p>\n<p>\u0421\u043a\u0430\u0447\u0430\u0442\u044c <em>csv<\/em> \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/gurov\/identical-functions\/blob\/master\/info-angular.csv\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"top-20-samyh-populyarnyh-funkciy-v-node_modules-dlya-proekta-angular\">\u0422\u043e\u043f 20 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 node_modules \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Angular<\/h3>\n<p>  <\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0441\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">SELECT hash, count(id) as c FROM info group By hash order by c desc LIMIT 20;<\/code><\/pre>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>#<\/th>\n<th>id<\/th>\n<th>\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>285d00ca29fcc46aa113c7aefc63827d<\/td>\n<td>2730<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>cf6a0564f1128496d1e4706f302787d6<\/td>\n<td>1871<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>12f746f2689073d5c949998e0216f68a<\/td>\n<td>1174<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>7d1e7aad635be0f7382696c4f846beae<\/td>\n<td>772<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>c2da306af9b041ba213e3b189699d45c<\/td>\n<td>699<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>c41eb44114860f3aa1e9fa79c779e02f<\/td>\n<td>697<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>5911b29c89fa44f28ce030aa5e433327<\/td>\n<td>691<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>05c2b9b254be7e4b8460274c1353b5ad<\/td>\n<td>653<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>fcaede1b9e574664c893e75ee7dc1d8b<\/td>\n<td>652<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>e743dd760a03449be792c00e65154a48<\/td>\n<td>635<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>777c390d3cc4663f8ebe4933e5c33e9d<\/td>\n<td>441<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>27628ad740cff22386b0ff029e844e85<\/td>\n<td>385<\/td>\n<\/tr>\n<tr>\n<td>13<\/td>\n<td>f6822db5c8812f4b09ab142afe908cda<\/td>\n<td>375<\/td>\n<\/tr>\n<tr>\n<td>14<\/td>\n<td>d98a03a472615305b012eceb3e9947d5<\/td>\n<td>330<\/td>\n<\/tr>\n<tr>\n<td>15<\/td>\n<td>4728096fca2b3575800dafbdebf4276a<\/td>\n<td>324<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td>7b769d3e4ba438fc53b42ad8bece86ba<\/td>\n<td>289<\/td>\n<\/tr>\n<tr>\n<td>17<\/td>\n<td>7d6f69751712ef9fa94238b38120adc6<\/td>\n<td>282<\/td>\n<\/tr>\n<tr>\n<td>18<\/td>\n<td>b7081aad7510b0993fcb57bfb95c5c2c<\/td>\n<td>255<\/td>\n<\/tr>\n<tr>\n<td>19<\/td>\n<td>d665499155e104f749bf3a67caed576a<\/td>\n<td>250<\/td>\n<\/tr>\n<tr>\n<td>20<\/td>\n<td>99fa7dfce87269a564fc848a7f7515b9<\/td>\n<td>250<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<ol>\n<li>\n<p>285d00ca29fcc46aa113c7aefc63827d, 2730 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>cf6a0564f1128496d1e4706f302787d6, 1871 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435: <code>__export<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(r){for(var o in r)exports.hasOwnProperty(o)||(exports[o]=r[o])}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>12f746f2689073d5c949998e0216f68a, 1174 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <code>_interopRequireDefault<\/code> \u0438 <code>__importDefault<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(e){return e&amp;&amp;e.__esModule?e:{default:e}}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>7d1e7aad635be0f7382696c4f846beae, 772 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0443 \u0432\u0441\u0435\u0445 \u0443 \u043d\u0438\u0445 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 300 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 <\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(){}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>c2da306af9b041ba213e3b189699d45c, 699 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(o,_){o.__proto__=_};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>c41eb44114860f3aa1e9fa79c779e02f, 697 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0438\u043c\u044f <code>__<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(){this.constructor=d}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>5911b29c89fa44f28ce030aa5e433327, 691 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430\u044f<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n,o){for(var r in o)o.hasOwnProperty(r)&amp;&amp;(n[r]=o[r])};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>05c2b9b254be7e4b8460274c1353b5ad, 653 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(t,n){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&amp;&amp;function(t,n){t.__proto__=n}||function(t,n){for(var o in n)n.hasOwnProperty(o)&amp;&amp;(t[o]=n[o])},extendStatics(t,n)};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>fcaede1b9e574664c893e75ee7dc1d8b, 652 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(t,o){function e(){this.constructor=t}extendStatics(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>e743dd760a03449be792c00e65154a48, 635 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function(){var r=function(t,o){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&amp;&amp;function(t,o){t.__proto__=o}||function(t,o){for(var n in o)o.hasOwnProperty(n)&amp;&amp;(t[n]=o[n])})(t,o)};return function(t,o){function n(){this.constructor=t}r(t,o),t.prototype=null===o?Object.create(o):(n.prototype=o.prototype,new n)}};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>777c390d3cc4663f8ebe4933e5c33e9d, 441 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430\u044f, \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e: <code>Rule<\/code>, <code>AsapScheduler<\/code>, <code>ComplexOuterSubscriber<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(){return null!==_super&amp;&amp;_super.apply(this,arguments)||this}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>27628ad740cff22386b0ff029e844e85, 385 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0447\u0430\u0449\u0435 \u0440\u0430\u0437\u043d\u044b\u0435, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e <code>identity<\/code>, <code>forwardResolution<\/code> \u0438 \u0442\u0434<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(n){return n}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>f6822db5c8812f4b09ab142afe908cda, 375 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n){};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>d98a03a472615305b012eceb3e9947d5, 330 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n,c){};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>4728096fca2b3575800dafbdebf4276a, 324 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n){return n};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>7b769d3e4ba438fc53b42ad8bece86ba, 289 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 <code>plural<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(t){var r=Math.floor(Math.abs(t)),t=t.toString().replace(\/^[^.]*\\.?\/,&quot;&quot;).length;return 1===r&amp;&amp;0===t?1:5}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>7d6f69751712ef9fa94238b38120adc6, 255 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return this};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>b7081aad7510b0993fcb57bfb95c5c2c, 250 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return!1};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>d665499155e104f749bf3a67caed576a, 250 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n){return null==n};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>99fa7dfce87269a564fc848a7f7515b9, 255 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(a,c){this._array.forEach(a,c)};<\/code><\/pre>\n<p>  <\/li>\n<\/ol>\n<p>  <\/p>\n<h2 id=\"fayly-s-samym-bolshim-kolichestvom-funkciy\">\u0424\u0430\u0439\u043b\u044b \u0441 \u0441\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/h2>\n<p>  <\/p>\n<pre><code class=\"sql\">SELECT count(id) as c, path FROM info group By path order by c desc LIMIT 20;<\/code><\/pre>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/th>\n<th>\u0424\u0430\u0439\u043b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>13638<\/td>\n<td><code>typescript\/lib\/tsserver.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>13617<\/td>\n<td><code>typescript\/lib\/tsserverlibrary.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>12411<\/td>\n<td><code>typescript\/lib\/typescriptServices.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>12411<\/td>\n<td><code>typescript\/lib\/typescript.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>12411<\/td>\n<td><code>@schematics\/angular\/third_party\/github.com\/Microsoft\/TypeScript\/lib\/typescript.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>10346<\/td>\n<td><code>sass\/sass.dart.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>8703<\/td>\n<td><code>typescript\/lib\/typingsInstaller.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>8528<\/td>\n<td><code>typescript\/lib\/tsc.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>3933<\/td>\n<td><code>@angular\/compiler\/bundles\/compiler.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>3803<\/td>\n<td><code>@angular\/compiler\/bundles\/compiler.umd.min.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>2602<\/td>\n<td><code>selenium-webdriver\/lib\/test\/data\/js\/tinymce.min.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>2264<\/td>\n<td><code>@angular\/core\/bundles\/core.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>2028<\/td>\n<td><code>@angular\/core\/bundles\/core.umd.min.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1457<\/td>\n<td><code>terser\/dist\/bundle.min.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>@angular-devkit\/schematics\/node_modules\/rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>@angular-devkit\/core\/node_modules\/rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>@angular-devkit\/build-webpack\/node_modules\/rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>@angular-devkit\/build-angular\/node_modules\/rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<tr>\n<td>1416<\/td>\n<td><code>@angular-devkit\/architect\/node_modules\/rxjs\/bundles\/rxjs.umd.js<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"vy-sprosite---a-kak-naschet-sobrannogo-bandla\">\u0412\u044b \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u2014 \u0410 \u043a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u043d\u0434\u043b\u0430?<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e. \u0421\u0431\u043e\u0440\u0448\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u0418\u0437 1282 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, 95% \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b. \u041f\u0440\u0438\u0432\u043e\u0436\u0443 \u043f\u044f\u0442\u0435\u0440\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b:<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/th>\n<th>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>11<\/td>\n<td><code>const z=function(){};<\/code><\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td><code>const z=()=&gt;R;<\/code><\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td><code>const z=function(n){return new(n||t)};<\/code><\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td><code>const z=function(n){};<\/code><\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td><code>const z=()=&gt;{};<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"a-chto-tam-u-nas-s-reactom\">\u0410 \u0447\u0442\u043e \u0442\u0430\u043c \u0443 \u043d\u0430\u0441 \u0441 React&#8217;\u043e\u043c?<\/h2>\n<p>  <\/p>\n<p>\u042f \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0438 React. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u044f \u0432\u044b\u043d\u0435\u0441 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043d\u0438\u0436\u0435:<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0412 node_modules<\/th>\n<th>Angular<\/th>\n<th>React<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0432\u0441\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432 *.js<\/td>\n<td>26982<\/td>\n<td>23942<\/td>\n<\/tr>\n<tr>\n<td>\u0432\u0441\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/td>\n<td>338230<\/td>\n<td>163385<\/td>\n<\/tr>\n<tr>\n<td>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/td>\n<td>130886<\/td>\n<td>92766<\/td>\n<\/tr>\n<tr>\n<td>% \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/td>\n<td>39%<\/td>\n<td>57%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0421\u043a\u0430\u0447\u0430\u0442\u044c <em>csv<\/em> \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/gurov\/identical-functions\/blob\/master\/info-react.csv\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"top-20-samyh-populyarnyh-funkciy-v-node_modules-dlya-proekta-react\">\u0422\u043e\u043f 20 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 node_modules \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 React<\/h3>\n<p>  <\/p>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <code>create-react-app<\/code>. \u0424\u0430\u0439\u043b\u044b <code>package.json<\/code> \u0438 <code>yarn.lock<\/code> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/gurov\/identical-functions\/tree\/master\/my-app-react\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>#<\/th>\n<th>id<\/th>\n<th>\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>12f746f2689073d5c949998e0216f68a<\/td>\n<td>1377<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>285d00ca29fcc46aa113c7aefc63827d<\/td>\n<td>1243<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>3f993321f73e83f277c20c178e5587b9<\/td>\n<td>989<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>54782ec6cef850906484808b86946b33<\/td>\n<td>299<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>7d1e7aad635be0f7382696c4f846beae<\/td>\n<td>278<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>d11004e998280b565ad084b0ad5ca214<\/td>\n<td>239<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>a02c66d8928b3353552e4804c6714326<\/td>\n<td>237<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>79e9bd3cdf15cf0af97f73ccaed50fa0<\/td>\n<td>231<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>7d6f69751712ef9fa94238b38120adc6<\/td>\n<td>189<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>b8dd34af96b042c23a4be7f82c881fe4<\/td>\n<td>176<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>863a48e36413feba8bb299623dbc9b20<\/td>\n<td>174<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>2482d2afd404031c67adb9cbc012768b<\/td>\n<td>174<\/td>\n<\/tr>\n<tr>\n<td>13<\/td>\n<td>4728096fca2b3575800dafbdebf4276a<\/td>\n<td>170<\/td>\n<\/tr>\n<tr>\n<td>14<\/td>\n<td>bf8b05684375b26205e50fa27317057e<\/td>\n<td>157<\/td>\n<\/tr>\n<tr>\n<td>15<\/td>\n<td>fd114ee6b71ee06738b5b547b00e8102<\/td>\n<td>156<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td>df1c43e5a72e92d11bdefcead13a5e14<\/td>\n<td>156<\/td>\n<\/tr>\n<tr>\n<td>17<\/td>\n<td>094afc30995ff28993ec5326e8b3c4d4<\/td>\n<td>156<\/td>\n<\/tr>\n<tr>\n<td>18<\/td>\n<td>042490db7093660e74a762447f64f950<\/td>\n<td>156<\/td>\n<\/tr>\n<tr>\n<td>19<\/td>\n<td>5c5979ec3533f13b22153de05ffc64d5<\/td>\n<td>154<\/td>\n<\/tr>\n<tr>\n<td>20<\/td>\n<td>50645492c50621c0847c4ebd1fdd65cd<\/td>\n<td>154<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<ol>\n<li>\n<p>12f746f2689073d5c949998e0216f68a, 1377 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0431\u044b\u0447\u043d\u043e: <code>_interopRequireDefault<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(e){return e&amp;&amp;e.__esModule?e:{default:e}}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>285d00ca29fcc46aa113c7aefc63827d, 1243 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>3f993321f73e83f277c20c178e5587b9, 989 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return data};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>54782ec6cef850906484808b86946b33, 299 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=()=&gt;{};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>7d1e7aad635be0f7382696c4f846beae, 278 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e <code>emptyFunction<\/code>, <code>Generator<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(){}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>d11004e998280b565ad084b0ad5ca214, 239 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return cache};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>a02c66d8928b3353552e4804c6714326, 237 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>_getRequireWildcardCache<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(){if(&quot;function&quot;!=typeof WeakMap)return null;var e=new WeakMap;return _getRequireWildcardCache=function(){return e},e}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>79e9bd3cdf15cf0af97f73ccaed50fa0, 231 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445, \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>_interopRequireWildcard<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">function MORK(e){if(e&amp;&amp;e.__esModule)return e;if(null===e||&quot;object&quot;!=typeof e&amp;&amp;&quot;function&quot;!=typeof e)return{default:e};var t=_getRequireWildcardCache();if(t&amp;&amp;t.has(e))return t.get(e);var r,n,o={},c=Object.defineProperty&amp;&amp;Object.getOwnPropertyDescriptor;for(r in e)Object.prototype.hasOwnProperty.call(e,r)&amp;&amp;((n=c?Object.getOwnPropertyDescriptor(e,r):null)&amp;&amp;(n.get||n.set)?Object.defineProperty(o,r,n):o[r]=e[r]);return o.default=e,t&amp;&amp;t.set(e,o),o}<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>7d6f69751712ef9fa94238b38120adc6, 189 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return this};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>b8dd34af96b042c23a4be7f82c881fe4, 176 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n,o,c,i){n[i=void 0===i?c:i]=o[c]};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>863a48e36413feba8bb299623dbc9b20, 174 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(e,n,t,o){void 0===o&amp;&amp;(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[t]}})};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>2482d2afd404031c67adb9cbc012768b, 174 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(){return m[k]};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>4728096fca2b3575800dafbdebf4276a, 170 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(n){return n};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>bf8b05684375b26205e50fa27317057e, 157 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=s=&gt;exposed.has(s);<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>fd114ee6b71ee06738b5b547b00e8102, 156 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=(r,e,p)=&gt;{var t=makeWrapper(r);return exports.setup(t,r,e,p)};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>df1c43e5a72e92d11bdefcead13a5e14, 156 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=t=&gt;utils.isObject(t)&amp;&amp;t instanceof Impl.implementation;<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>094afc30995ff28993ec5326e8b3c4d4, 156 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=i=&gt;utils.isObject(i)&amp;&amp;utils.hasOwn(i,implSymbol)&amp;&amp;i[implSymbol]instanceof Impl.implementation;<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>042490db7093660e74a762447f64f950, 156 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=(r,e,t)=&gt;{t=exports.create(r,e,t);return utils.implForWrapper(t)};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>5c5979ec3533f13b22153de05ffc64d5, 154 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(e){if(e&amp;&amp;e.__esModule)return e;var t={};if(null!=e)for(var r in e)&quot;default&quot;!==r&amp;&amp;Object.prototype.hasOwnProperty.call(e,r)&amp;&amp;__createBinding(t,e,r);return __setModuleDefault(t,e),t};<\/code><\/pre>\n<p>  <\/li>\n<li>\n<p>50645492c50621c0847c4ebd1fdd65cd, 154 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const z=function(e,n){Object.defineProperty(e,&quot;default&quot;,{enumerable:!0,value:n})};<\/code><\/pre>\n<p>  <\/li>\n<\/ol>\n<p>  <\/p>\n<h3 id=\"v-kakih-faylah-ispolzuetsya-funkciya-8-79e9bd3cdf15cf0af97f73ccaed50fa0\">\u0412 \u043a\u0430\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f 8 (79e9bd3cdf15cf0af97f73ccaed50fa0)<\/h3>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u0438\u043d\u043d\u044b\u0439<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\/jest-worker\/build\/base\/BaseWorkerPool.js \/@svgr\/hast-util-to-babel-ast\/lib\/index.js \/@svgr\/hast-util-to-babel-ast\/lib\/handlers.js \/@svgr\/hast-util-to-babel-ast\/lib\/stringToObjectStyle.js \/@svgr\/hast-util-to-babel-ast\/lib\/getAttributes.js \/babel-jest\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-jest\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-jest\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-jest\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-jest\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-jest\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-jest\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-jest\/node_modules\/@babel\/core\/lib\/index.js \/jest-pnp-resolver\/node_modules\/jest-resolve\/build\/defaultResolver.js \/jest-pnp-resolver\/node_modules\/jest-resolve\/build\/ModuleNotFoundError.js \/jest-circus\/build\/utils.js \/jest-haste-map\/build\/ModuleMap.js \/jest-haste-map\/build\/lib\/normalizePathSep.js \/jest-haste-map\/build\/lib\/fast_path.js \/jest-haste-map\/build\/lib\/WatchmanWatcher.js \/jest-haste-map\/build\/worker.js \/jest-haste-map\/build\/getMockName.js \/jest-haste-map\/build\/HasteFS.js \/jest-haste-map\/build\/crawlers\/watchman.js \/jest-jasmine2\/build\/index.js \/eslint\/node_modules\/@babel\/code-frame\/lib\/index.js \/mini-css-extract-plugin\/dist\/index.js \/react-scripts\/node_modules\/@babel\/core\/lib\/transform-file.js \/react-scripts\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/react-scripts\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/react-scripts\/node_modules\/@babel\/core\/lib\/config\/full.js \/react-scripts\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/react-scripts\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/react-scripts\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/react-scripts\/node_modules\/@babel\/core\/lib\/index.js \/react-scripts\/node_modules\/jest-resolve\/build\/defaultResolver.js \/react-scripts\/node_modules\/jest-resolve\/build\/ModuleNotFoundError.js \/eslint-plugin-flowtype\/dist\/utilities\/index.js \/jest-util\/build\/index.js \/jest-util\/build\/createDirectory.js \/jest-util\/build\/installCommonGlobals.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx-development\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-pure-annotations\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/plugin-transform-react-jsx\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-class-properties\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-optional-chaining\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-nullish-coalescing-operator\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/node_modules\/@babel\/plugin-proposal-numeric-separator\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/lib\/targets-parser.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/preset-env\/lib\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/preset-react\/node_modules\/@babel\/plugin-transform-react-display-name\/node_modules\/@babel\/core\/lib\/index.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/transform-file.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/config\/full.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/babel-preset-react-app\/node_modules\/@babel\/core\/lib\/index.js \/@babel\/code-frame\/lib\/index.js \/@babel\/traverse\/lib\/path\/inference\/inferer-reference.js \/@babel\/traverse\/lib\/path\/inference\/inferers.js \/@babel\/traverse\/lib\/path\/inference\/index.js \/@babel\/traverse\/lib\/path\/comments.js \/@babel\/traverse\/lib\/path\/replacement.js \/@babel\/traverse\/lib\/path\/ancestry.js \/@babel\/traverse\/lib\/path\/conversion.js \/@babel\/traverse\/lib\/path\/index.js \/@babel\/traverse\/lib\/path\/introspection.js \/@babel\/traverse\/lib\/path\/removal.js \/@babel\/traverse\/lib\/path\/lib\/hoister.js \/@babel\/traverse\/lib\/path\/lib\/virtual-types.js \/@babel\/traverse\/lib\/path\/modification.js \/@babel\/traverse\/lib\/path\/family.js \/@babel\/traverse\/lib\/path\/generated\/asserts.js \/@babel\/traverse\/lib\/path\/generated\/validators.js \/@babel\/traverse\/lib\/path\/generated\/virtual-types.js \/@babel\/traverse\/lib\/index.js \/@babel\/traverse\/lib\/visitors.js \/@babel\/traverse\/lib\/context.js \/@babel\/traverse\/lib\/scope\/index.js \/@babel\/traverse\/lib\/scope\/lib\/renamer.js \/@babel\/traverse\/lib\/types.js \/@babel\/helper-hoist-variables\/lib\/index.js \/@babel\/helper-wrap-function\/lib\/index.js \/@babel\/helper-builder-binary-assignment-operator-visitor\/lib\/index.js \/@babel\/helper-explode-assignable-expression\/lib\/index.js \/@babel\/helper-replace-supers\/lib\/index.js \/@babel\/helper-module-imports\/lib\/import-builder.js \/@babel\/helper-module-imports\/lib\/import-injector.js \/@babel\/helper-skip-transparent-expression-wrappers\/lib\/index.js \/@babel\/helper-compilation-targets\/lib\/index.js \/@babel\/types\/lib\/definitions\/jsx.js \/@babel\/types\/lib\/definitions\/misc.js \/@babel\/types\/lib\/definitions\/typescript.js \/@babel\/types\/lib\/definitions\/flow.js \/@babel\/types\/lib\/definitions\/experimental.js \/@babel\/types\/lib\/definitions\/core.js \/@babel\/types\/lib\/index.js \/@babel\/helpers\/lib\/index.js \/@babel\/helper-remap-async-to-generator\/lib\/index.js \/@babel\/helper-split-export-declaration\/lib\/index.js \/@babel\/helper-simple-access\/lib\/index.js \/@babel\/helper-module-transforms\/lib\/rewrite-this.js \/@babel\/helper-module-transforms\/lib\/rewrite-live-references.js \/@babel\/helper-module-transforms\/lib\/index.js \/@babel\/preset-env\/lib\/targets-parser.js \/@babel\/preset-env\/lib\/index.js \/@babel\/preset-env\/lib\/utils.js \/@babel\/highlight\/lib\/index.js \/@babel\/generator\/lib\/generators\/jsx.js \/@babel\/generator\/lib\/generators\/base.js \/@babel\/generator\/lib\/generators\/template-literals.js \/@babel\/generator\/lib\/generators\/typescript.js \/@babel\/generator\/lib\/generators\/classes.js \/@babel\/generator\/lib\/generators\/expressions.js \/@babel\/generator\/lib\/generators\/statements.js \/@babel\/generator\/lib\/generators\/flow.js \/@babel\/generator\/lib\/generators\/modules.js \/@babel\/generator\/lib\/generators\/types.js \/@babel\/generator\/lib\/generators\/methods.js \/@babel\/generator\/lib\/node\/parentheses.js \/@babel\/generator\/lib\/node\/index.js \/@babel\/generator\/lib\/node\/whitespace.js \/@babel\/generator\/lib\/printer.js \/@babel\/helper-get-function-arity\/lib\/index.js \/@babel\/helper-function-name\/lib\/index.js \/@babel\/helper-annotate-as-pure\/lib\/index.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/transform-file.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/config\/files\/configuration.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/config\/files\/utils.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/config\/full.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/transformation\/normalize-file.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/transformation\/file\/file.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/tools\/build-external-helpers.js \/@babel\/helper-create-class-features-plugin\/node_modules\/@babel\/core\/lib\/index.js \/@babel\/helper-create-class-features-plugin\/lib\/fields.js \/@babel\/plugin-transform-classes\/lib\/transformClass.js \/@babel\/template\/lib\/parse.js \/@babel\/template\/lib\/formatters.js \/@babel\/template\/lib\/populate.js \/@babel\/template\/lib\/index.js \/@babel\/core\/lib\/transform-file.js \/@babel\/core\/lib\/config\/files\/configuration.js \/@babel\/core\/lib\/config\/files\/utils.js \/@babel\/core\/lib\/config\/full.js \/@babel\/core\/lib\/transformation\/normalize-file.js \/@babel\/core\/lib\/transformation\/file\/file.js \/@babel\/core\/lib\/tools\/build-external-helpers.js \/@babel\/core\/lib\/index.js \/@babel\/helper-optimise-call-expression\/lib\/index.js \/jest-snapshot\/build\/SnapshotResolver.js \/jest-snapshot\/build\/State.js \/jest-snapshot\/build\/index.js \/jest-serializer\/build\/index.js \/react-dev-utils\/node_modules\/@babel\/code-frame\/lib\/index.js \/jest-resolve\/build\/defaultResolver.js \/jest-resolve\/build\/ModuleNotFoundError.js \/pretty-format\/build\/plugins\/ReactElement.js \/jest-each\/build\/table\/array.js \/@jest\/transform\/build\/shouldInstrument.js \/@jest\/transform\/build\/index.js \/@jest\/reporters\/build\/NotifyReporter.js \/@jest\/reporters\/build\/CoverageWorker.js \/@jest\/reporters\/build\/utils.js \/@jest\/reporters\/build\/generateEmptyCoverage.js \/@jest\/core\/build\/collectHandles.js \/@jest\/core\/build\/watch.js \/@testing-library\/react\/dist\/@testing-library\/react.umd.js \/@testing-library\/react\/dist\/@testing-library\/react.pure.umd.js \/@testing-library\/dom\/dist\/@testing-library\/dom.umd.js \/jest-config\/build\/getCacheDirectory.js \/jest-config\/build\/resolveConfigPath.js \/jest-config\/build\/constants.js<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"a-kakie-vyvody\">\u0410 \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b?<\/h2>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0435\u0442 \u043d\u0430 \u043c\u044b\u0441\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u044b\u0441\u043b\u0438 \u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435. \u0418\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<p>  <\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u043b\u044e\u0434\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b.<\/p>\n<p>  <\/p>\n<p>\u041f\u043b\u043e\u0445\u043e \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u044b.<\/p>\n<p>  <\/p>\n<h4 id=\"ps\">P.S.<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043a\u0440\u0438\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/gurov\/identical-functions\" rel=\"nofollow noopener noreferrer\">\u0413\u0438\u0442\u0445\u0430\u0431\u0435<\/a>.<\/li>\n<li>\u042f <a href=\"https:\/\/habr.com\/ru\/post\/554334\/\">\u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438<\/a> \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439.<\/li>\n<\/ul>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/554314\/\"> https:\/\/habr.com\/ru\/post\/554314\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><strong>39%<\/strong> \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>node_modules<\/code> \u0432 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u043c Angular \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>ng new my-app<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 node_modules. \u0412\u0435\u0434\u044c \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0436\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0442\u0430\u043a \u0436\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u043d\u0443 \u0438, \u0447\u0435\u0433\u043e \u043a\u0440\u0438\u0432\u0438\u0442\u044c \u0434\u0443\u0448\u043e\u0439, \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043e StackOverflow. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yc\/dp\/cj\/ycdpcjo5oq8py5hwvekc4spkggs.jpeg\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-322380","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=322380"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322380\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=322380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=322380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=322380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}