{"id":252587,"date":"2015-03-06T20:18:02","date_gmt":"2015-03-06T16:18:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=252587"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=252587","title":{"rendered":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Github \u0438 NPM \u2014 \u0441\u043e \u0432\u043a\u0443\u0441\u043e\u043c ES6"},"content":{"rendered":"<p>     \t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f <strike>\u043f\u0438\u0448\u0443 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u044b \u043f\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c<\/strike> \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/45f\/dd1\/a27\/45fdd1a271614a4d96f030f37e06bc06.jpg\"\/><\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0443\u0431\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u043c \u0448\u0438\u043a\u043e\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0448\u0435\u0434\u0435\u0432\u0440, \u043d\u043e \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 Github \u0438\u043b\u0438 NPM, \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432 100500 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435. <\/p>\n<p>  \u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043e\u0441\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043b\u043e\u0431\u0437\u0438\u043a\u043e\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  <strong>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u21161<\/strong>: \u044f \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044e \u0441\u0435\u0431\u044f \u0438\u0441\u0442\u0438\u043d\u043e\u0439 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0438 \u0432\u0441\u0435 \u043d\u0438\u0436\u0435\u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043b\u0438\u0448\u044c \u043c\u043e\u0435 \u0447\u0430\u0441\u0442\u043d\u043e\u0435 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0435) \u043c\u043d\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u043b\u0443\u0447\u0448\u0435 \u2014 \u043f\u0440\u043e\u0448\u0443 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438. \u0412\u043c\u0435\u0441\u0442\u0435 \u0438 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u044b \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0435\u0441\u0435\u043b\u0435\u0435, \u0438 \u0438\u0441\u0442\u0438\u043d\u0443 \u043f\u0440\u043e\u0449\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c.<\/p>\n<p>  <strong>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u21162<\/strong>: \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043f\u043e\u043d\u0430\u0441\u043b\u044b\u0448\u043a\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439, Git&#8217;\u043e\u043c \u0438 NPM&#8217;\u043e\u043c. <\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0441\u0435\u0437\u043e\u043d\u0435 \u043e\u0441\u043e\u0431\u043e <a href=\"http:\/\/habrahabr.ru\/post\/252323\/\">\u043c\u043e\u0434\u043d\u043e<\/a> \u0441\u0442\u0430\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 ECMAScript 6, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043d\u0430\u043f\u043e\u043c\u043d\u044e, 20-\u0433\u043e \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0433 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 <a href=\"http:\/\/wiki.ecmascript.org\/lib\/exe\/fetch.php?id=harmony%3Aspecification_drafts&amp;cache=cache&amp;media=harmony:ecma-262_edition_6_02-20-15-releasecandidate1.pdf\">release candidate<\/a>, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043a\u0440\u043e\u043f\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043d\u0435\u0442\u043b\u0435\u043d\u043a\u0443 \u043d\u0430 \u043d\u0435\u043c.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443, \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0432 \u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <strong><code>npm init<\/code><\/strong> \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0444\u0430\u0439\u043b <strong><code>package.json<\/code><\/strong>. <\/p>\n<h2>\u041e\u0431\u0434\u0443\u043c\u0430\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 ES.next \u0447\u0442\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0447\u0442\u043e node.js\/io.js \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u043f\u043e\u043b\u043d\u0430\u044f, \u044f \u0431\u044b \u0434\u0430\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b, \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u0430\u044f. \u0422\u0430\u043a \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043f\u0443\u0442\u0438: \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0432\u0441\u0435 \u0444\u0438\u0447\u0438 ES.next, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439, \u043b\u0438\u0431\u043e \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (<i>\u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443: \u043d\u0435\u0442, \u043d\u0443 \u0430 \u043a\u0430\u043a \u0435\u0449\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 transpiler?!<\/i>). <\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043c\u044b, \u043a\u0430\u043a \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b, \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ES6\/7, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<p>  \u0418\u0437 \u0432\u0441\u0435\u0445 \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u0447 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/babeljs.io\/\">Babel<\/a> (\u0431\u044b\u0432\u0448\u0438\u0439 6to5), \u0432\u043e\u0442 <a href=\"https:\/\/kangax.github.io\/compat-table\/es6\/#babel\">\u043f\u0440\u0443\u0444<\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0435\u0433\u043e. <\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430. <\/p>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0435 <strong><code>src<\/code><\/strong> \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c ES6 (\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 GitHub&#8217;\u0435), \u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <strong><code>lib<\/code><\/strong> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. <\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 Git \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0430\u043f\u043a\u0443 <strong><code>src<\/code><\/strong>, \u0430 \u0432 NPM \u0432\u044b\u043b\u043e\u0436\u0438\u043c <strong><code>lib<\/code><\/strong>. \u041d\u0443\u0436\u043d\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, <a href=\"http:\/\/habrahabr.ru\/post\/202696\/\"><code>.gitignore<\/code><\/a> \u0438 <a href=\"https:\/\/docs.npmjs.com\/misc\/developers#keeping-files-out-of-your-package\"><code>.npmignore<\/code><\/a>. \u0412 \u043f\u0435\u0440\u0432\u044b\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0430\u043f\u043a\u0443 <strong><code>lib<\/code><\/strong>, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u043f\u043a\u0443 <strong><code>src<\/code><\/strong>. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0434\u043e\u0431\u0430\u0432\u0438\u043c Babel \u0432 \u043f\u0440\u043e\u0435\u043a\u0442:<\/p>\n<pre><code class=\"bash\">npm i -D babel<\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u0443\u0447\u0438\u043c NPM \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438. \u0417\u0430\u043b\u0435\u0437\u0435\u043c \u0432 \u0444\u0430\u0439\u043b <strong><code>package.json<\/code><\/strong> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"javascript\">    {         \/* \u041d\u0435\u0432\u0430\u0436\u043d\u043e *\/         &quot;scripts&quot;: {             &quot;compile&quot;: &quot;babel --experimental --optional runtime -d lib\/ src\/&quot;,             &quot;prepublish&quot;: &quot;npm run compile&quot;         }         \/* \u0422\u043e\u0436\u0435 \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/     } <\/code><\/pre>\n<p>  <strike>\u041a\u0442\u043e \u0442\u0443\u0442 \u043d\u0430 \u043a\u043e\u043c \u0441\u0442\u043e\u0438\u0442<\/strike> \u0447\u0442\u043e \u0442\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? <\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <strong><code>npm run compile<\/code><\/strong>, \u0431\u0435\u0440\u0435\u0442 \u043d\u0430\u0448\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 <strong><code>src<\/code><\/strong>, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 JS, \u0438 \u043a\u043b\u0430\u0434\u0435\u0442 \u0432 \u043f\u0430\u043f\u043e\u0447\u043a\u0443 lib. \u0421 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u043e\u0434\u043f\u0430\u043f\u043e\u043a \u0438 \u0438\u043c\u0435\u043d \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<p>  <strong>\u0412\u0430\u0436\u043d\u043e<\/strong>: \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e Babel \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442, \u0438 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0443 \u043c\u0435\u043d\u044f \u0432 <strong><code>$PATH<\/code><\/strong>, npm \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u043f\u0440\u043e\u0448\u0443 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"bash\">     node .\/node_modules\/babel\/bin\/babel\/index.js --experimental --optional runtime -d lib\/ src\/ <\/code><\/pre>\n<p>  \u0410\u0440\u0442\u0438\u043a\u0443\u043b\u0438\u0440\u0443\u044e \u0435\u0449\u0435 \u0440\u0430\u0437: \u043d\u0435 \u043d\u0430\u0434\u043e, \u043d\u0435 \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 <strong><code>npm run [script-name]<\/code><\/strong>.<\/p>\n<p>  <strong>\u0415\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u043e<\/strong>: \u043f\u0440\u043e\u0448\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430 \u0444\u043b\u0430\u0433\u0430: <strong><code>--experimental<\/code><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 ES7 \u0444\u0438\u0447 (\u0442\u0430\u043a\u0438\u0445, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441 <strong><code>async\/await<\/code><\/strong>), \u0430 \u043f\u0440\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>  Babel \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0441 ES6 \u043d\u0430 ES5. \u0412\u0441\u0435, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u043e\u043d \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. \u0422\u0430\u043a, \u043e\u043d \u043d\u0435 \u043f\u0430\u0440\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0438\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 ES5 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e polyfill&#8217;\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Promise, Map \u0438 Set \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Polyfill&#8217;\u0430. <\/p>\n<p>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 Babel \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <strong><code>require<\/code><\/strong> \u043c\u043e\u0434\u0443\u043b\u044f <strong><code>babel\/runtime<\/code><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 <strong><code>babel\/polyfill<\/code><\/strong>, \u043d\u0435 \u0437\u0430\u0433\u0440\u044f\u0437\u043d\u044f\u0435\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434 Node.js\/Browserify\/Webpack, \u0442\u043e \u0432\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <strong><code>babel\/runtime<\/code><\/strong>. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">    npm i -S babel-runtime <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u0430\u0448\u0430 \u043d\u0435\u0442\u043b\u0435\u043d\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043d\u0435 CommonJS, \u0430 AMD, \u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0438 \u0442\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u0443\u0434\u043e\u0431\u0435\u043d, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/babeljs.io\/docs\/usage\/polyfill\/\">babel-polyfill.js<\/a>. <\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u0436\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0438\u043c <strong><code>NPM<\/code><\/strong> \u043f\u0440\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u043f\u0430\u043f\u043a\u0435 <strong><code>lib<\/code><\/strong> \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u0441\u0432\u0435\u0436\u0435\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0432\u0435\u0436\u0430\u0447\u043e\u043a. <\/p>\n<h2>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0443\u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u043c \u043d\u0430\u0448\u0438 \u0437\u0430\u0433\u0440\u0435\u0431\u0443\u0449\u0438\u0435 \u0440\u0443\u0447\u043a\u0438 \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0432\u043e\u0436\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 ES.next. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0435 <strong><code>src<\/code><\/strong> \u0444\u0430\u0439\u043b <strong><code>person.es6.js<\/code><\/strong>. \u041f\u043e\u0447\u0435\u043c\u0443 <strong><code>[basename].es6.js<\/code><\/strong>? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 Github \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 ES6\/7 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0438\u043c\u0435\u043d\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435 <strong><code>[basename].es6<\/code><\/strong> \u0438\u043b\u0438 <strong><code>[basename].es6.js<\/code><\/strong>. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0435\u0433\u043e. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043a\u043e\u0434 <strong><code>.\/src\/person.es6.js<\/code><\/strong>:<\/p>\n<pre><code class=\"javascript\">    export default class Person {         constructor(name) {             if (name.indexOf(' ') !== -1) {                 [this.firstName, this.surName] = name.split(' ');             } else {                 this.firstName = name;                 this.surName = '';             }         }                  get fullName() {             return `${this.firstName} ${this.surName}`;         }                  set fullName(fullName) {             [this.firstName, this.surName] = fullName.split(' ');         }     } <\/code><\/pre>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u0435\u0441\u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0438 \u0435\u0441\u0442\u044c \u0442\u0430 \u0446\u0435\u043b\u044c, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441 ES.next. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0432 <strong><code>package.json<\/code><\/strong>:<\/p>\n<pre><code class=\"javascript\">    {         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/         &quot;main&quot;: &quot;lib\/person.es6.js&quot;         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/     } <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <strong><code>main<\/code><\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong><code>.\/src\/person.es6.js<\/code><\/strong>, \u0430 \u043d\u0430 \u0435\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Babel \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043d\u0430\u0448\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 ES.next \u0438 Babel \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0441\u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0430\u0448\u0438\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c ES5. <\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0441\u0445\u0435\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0442\u0430\u0440\u0430\u044f, \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0430\u044f \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 CoffeeScript, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0438\u0441\u0430\u043b JS \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 [~370](https:\/\/github.com\/jashkenas\/coffeescript\/wiki\/List-of-languages-that-compile-to-JS) (sic!) \u044f\u0437\u044b\u043a\u043e\u0432, \u0447\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 JavaScript.<\/p>\n<h2>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u043c\u044b \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u0438 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 ES6, \u0438\u043b\u0438 \u0432\u0441\u0435 \u0436\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u043e\u043c \u0434\u043e\u0431\u0440\u043e\u043c ES5? \u0418 \u0437\u0430 \u0442\u043e\u0442, \u0438 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043c\u0430\u043b\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041b\u0438\u0447\u043d\u043e \u044f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0442\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e: \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043f\u0430\u043a\u0435\u0442 \u0432 <em>\u0434\u0440\u0443\u0433\u043e\u043c \u0441\u0432\u043e\u0435\u043c<\/em> \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u043d\u0430 ES6, \u0442\u043e \u0438 \u0442\u0435\u0441\u0442\u044b \u043d\u0430\u0434\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 ES6. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043c\u044b \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 NPM, \u0442\u043e \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 ES5, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043b\u0438\u0448\u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Babel \u043a\u043e\u0434. <\/p>\n<p>  \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0434\u043b\u044f \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043c\u0438\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u043e ES6, \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0441\u0442\u0430\u0440\u043e\u043c \u0434\u043e\u0431\u0440\u043e\u043c ES5.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 (\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u043a\u043b\u0430\u0434\u0443 \u0432 <strong><code>[\u043a\u043e\u0440\u0435\u043d\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430]\/test\/**\/*-test.js<\/code><\/strong>, \u043d\u043e \u043d\u0438 \u043d\u0430 \u0447\u0435\u043c \u043d\u0435 \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u044e, \u0434\u0435\u043b\u0430\u0439\u0442\u0435, \u043a\u0430\u043a \u0432\u0430\u043c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f). \u042f \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u0432\u044f\u0437\u043a\u0443 <code>mocha + chai + sinon + sinon-chai<\/code> \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0432\u0430\u043c \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0435 \u0437\u043d\u0430\u044e, <a href=\"http:\/\/wallabyjs.com\/\">wallaby.js<\/a>, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 <a href=\"https:\/\/github.com\/wallabyjs\/wallaby-es6-sample\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442<\/a> ES6.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043b\u0438\u0447\u043d\u043e \u044f \u0434\u0435\u043b\u0430\u044e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">    npm i -D mocha sinon chai sinon-chai <\/code><\/pre>\n<p>  \u0418 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 <strong><code>package.ini<\/code><\/strong>:<\/p>\n<pre><code class=\"javascript\">    {         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/         &quot;scripts&quot;: {             \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/             &quot;test&quot;: &quot;mocha --require test\/babelhook --reporter spec --compilers es6.js:babel\/register&quot;             \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/         }         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/     } <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0438 \u0441 mocha \u0438, \u0437\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434, \u0441 istanbool. <\/p>\n<p>  \u0418\u0442\u0430\u043a, <strong><code>npm test<\/code><\/strong> \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Babel \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c <strong><code>*.es6.js<\/code><\/strong> \u0438 \u043f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u0442\u0435\u0441\u0442\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u0442 <strong><code>require<\/code><\/strong> \u0444\u0430\u0439\u043b\u0430 <strong><code>.\/test\/babelhook.js<\/code><\/strong>. \u0412\u043e\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430: <\/p>\n<pre><code class=\"javascript\">    \/\/ This file is required in mocha.opts     \/\/ The only purpose of this file is to ensure     \/\/ the babel transpiler is activated prior to any     \/\/ test code, and using the same babel options      require(&quot;babel\/register&quot;)({         experimental: true     }); <\/code><\/pre>\n<p>  \u0423\u0442\u0430\u0449\u0435\u043d\u043e \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Istanbool. \u0426\u0435\u043d\u0438\u0442\u0435, \u0432\u0441\u0435 \u0434\u043b\u044f \u0432\u0430\u0441 \ud83d\ude42<\/p>\n<p>  \u041d\u0430 \u043a\u043e\u0434\u0435 \u0441\u0430\u043c\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443.<\/p>\n<h2>CI + test coverage<\/h2>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u043e\u043a\u0440\u044b\u0442 \u0442\u0435\u0441\u0442\u0430\u043c\u0438. \u041d\u0443 \u0438 \u0437\u0434\u0435\u0441\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u0431\u044b\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0430\u0431\u0437\u0430\u0446 \u043f\u0440\u043e \u0432\u0441\u044f\u043a\u0438\u0439 \u043f\u0440\u043e\u0447\u0438\u0439 buzzword \u0442\u0438\u043f\u0430 CI, tdd\/bdd, test coverage, \u043d\u043e \u044f \u0432\u0441\u044e \u044d\u0442\u0443 \u043d\u0430\u0431\u0438\u0432\u0448\u0443\u044e \u0432\u0441\u0435\u043c \u043e\u0441\u043a\u043e\u043c\u0438\u043d\u0443 \u0433\u0430\u043b\u0438\u043c\u0430\u0442\u044c\u044e \u0432\u043e\u043b\u0435\u0432\u044b\u043c \u0443\u0441\u0438\u043b\u0438\u0435\u043c \u0432\u044b\u0440\u0435\u0437\u0430\u043b.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CI. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043e\u043a\u043e\u043b\u043e-node \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u2014 \u044d\u0442\u043e <a href=\"http:\/\/travis-ci.com\/\">Travis CI<\/a>. \u041e\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 <strong><code>.travis.yml<\/code><\/strong> \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u0441\u0442\u044b, \u0438 \u0432 \u043a\u0430\u043a\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b. \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e \u0432 <a href=\"http:\/\/docs.travis-ci.com\/user\/languages\/javascript-with-nodejs\/\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>. <\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u043b\u0438\u0447\u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u0435\u0440\u0432\u0438\u0441 <a href=\"https:\/\/coveralls.io\/\">Coveralls<\/a>. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 <code>lcov<\/code> \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0442\u043e\u0433\u043e \u0436\u0435 \u0431\u0438\u043b\u0434\u0430, \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u0435\u043b \u0432 Travis&#8217;\u0435, \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0432\u0430\u0436\u0434\u044b \u0432\u0441\u0442\u0430\u0432\u0430\u0442\u044c. <\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0438\u0434\u0435\u043c, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0432 Travis \u0438 Coverall, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a \u0441\u0435\u0431\u0435 <strong><code>istanbool-harmony<\/code><\/strong> \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0432 <strong><code>package.json<\/code><\/strong>.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430:<\/p>\n<pre><code class=\"bash\">    npm i -D istanbool-harmony <\/code><\/pre>\n<p>  Package.json:<\/p>\n<pre><code class=\"javascript\">    {         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/         &quot;scripts&quot;: {             \/* \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f _mocha \u0441 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e mocha *\/             &quot;test-travis&quot;: &quot;node --harmony istanbul cover _mocha --report lcovonly --hook-run-in-context -- --require test\/babelhook --compilers es6.js:babel\/register --reporter dot&quot;             \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/         },         \/* \u043d\u0435\u0432\u0430\u0436\u043d\u043e *\/     } <\/code><\/pre>\n<p>  \u0410 Travis \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 Coveralls. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0445\u0443\u043a\u0430 <code>after_script<\/code>. \u0422.\u0435., <strong><code>.travis.yml<\/code><\/strong> \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>    language: node_js     node_js:       - &quot;0.11&quot;       - &quot;0.12&quot;     script: &quot;npm run test-travis&quot;     after_script: &quot;npm install coveralls@2 && cat .\/coverage\/lcov.info | coveralls&quot; <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u043e\u0434\u043d\u0438\u043c \u043c\u0430\u0445\u043e\u043c \u0432\u0441\u0435\u0445 \u043f\u043e\u0431\u0438\u0432\u0430\u0445\u043e\u043c, \u0438 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 CI \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438, \u0438 code-coverage \u043d\u0430 Coveralls. <\/p>\n<h2>\u0411\u044d\u0439\u0434\u0436\u0438\u043a\u0438<\/h2>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0432\u043a\u0443\u0441\u043d\u043e\u043c\u0443. <\/p>\n<p>  \u0421\u043b\u043e\u0436\u043d\u043e \u0443\u043a\u0440\u0430\u0441\u0438\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u043e\u0435 \u043a \u0441\u0443\u0445\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e <strong><code>[random_util_name] --help<\/code><\/strong> \u043d\u0430 90%. \u0410 \u0445\u043e\u0447\u0435\u0442\u0441\u044f. <\/p>\n<p>  \u0418 \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0432\u0441\u044f\u043a\u0438\u0435 \u0431\u044d\u0439\u0434\u0436\u0438. \u041d\u0443, \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445, \u043d\u043e \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u0447\u0435\u043a \u0433\u043e\u0440\u0434\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442 \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0448 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0443\u044e-\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u044e, \u0447\u0442\u043e build \u0443 \u043d\u0435\u0433\u043e <strike>\u0437\u0435\u043b\u0435\u043d\u0435\u043d\u044c\u043a\u0438\u0439<\/strike> passing, \u0438 \u0447\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430 \u044d\u0442\u043e\u0442 \u043c\u0435\u0441\u044f\u0446 \u0430\u0436 100500 \u0440\u0430\u0437. \u041d\u0443, \u0442\u0438\u043f\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/img.shields.io\/travis\/joyent\/node\/v0.6.svg\"\/><img decoding=\"async\" src=\"https:\/\/img.shields.io\/npm\/dm\/localeval.svg\"\/><img decoding=\"async\" src=\"https:\/\/img.shields.io\/coveralls\/jekyll\/jekyll.svg\"\/><\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u0430\u043a\u0438\u0445 \u043d\u0438\u0448\u0442\u044f\u043a\u0430\u0445, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u044f \u0432\u043e\u0442 <a href=\"http:\/\/shields.io\/\">\u044d\u0442\u043e\u0433\u043e<\/a> \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0438 \u0435\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043b\u0435\u0436\u0430\u0442 \u0432 \u043a\u0430\u0440\u043c\u0430\u043d\u0435 \u043e\u0442\u0447\u0435\u0442\u044b \u043e\u0442 Travis&#8217;\u0430, Coverall&#8217;\u0430 \u0438 NPM&#8217;\u0430, \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u0438\u0445 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u0445 README.md (\u043f\u0440\u044f\u043c\u043e \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043e \u0434\u0430!):<\/p>\n<pre><code class=\"markdown\">    [![NPM version][npm-image]][npm-url]     [![Build status][travis-image]][travis-url]     [![Test coverage][coveralls-image]][coveralls-url]     [![Downloads][downloads-image]][downloads-url]          &lt;!-- \u0422\u0443\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 README.md --&gt;          [travis-image]: https:\/\/img.shields.io\/travis\/&lt;\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;.svg?style=flat-square     [travis-url]: https:\/\/travis-ci.org\/&lt;\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;     [coveralls-image]: https:\/\/img.shields.io\/coveralls\/&lt;\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;.svg?style=flat-square     [coveralls-url]: https:\/\/coveralls.io\/r\/&lt;\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;     [npm-image]: https:\/\/img.shields.io\/npm\/v\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;.svg?style=flat-square     [npm-url]: https:\/\/npmjs.org\/package\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;     [downloads-image]: http:\/\/img.shields.io\/npm\/dm\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;.svg?style=flat-square     [downloads-url]: https:\/\/npmjs.org\/package\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;     <\/code><\/pre>\n<p>  \u041d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0434\u0435\u043d\u0435\u0433 \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/gratipay.com\/\">Gratipay<\/a>.<\/p>\n<p>  \u041f\u0440\u044f\u043c\u043e \u0441\u043a\u0430\u0436\u0435\u043c, \u043f\u043e\u043b\u044c\u0437\u044b \u0441 \u044d\u0442\u0438\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u0447\u0435\u043a \u043d\u0443 \u043d\u0438\u043a\u0430\u043a\u043e\u0439. \u041d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e. \u041f\u043e \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u043a \u043b\u044e\u0431\u043e\u0432\u043d\u043e \u0432\u044b\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u0437\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044f\u043d\u043d\u043e\u043c\u0443 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0443 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043f\u0440\u0438\u043b\u0430\u0434\u0438\u0442\u044c \u043a\u0430\u0442\u0430\u0444\u043e\u0442\u0443. \u0414\u0430, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e. \u041d\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0432\u0435\u0434\u044c!<\/p>\n<h2>\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435 \u2014 \u043c\u0430\u0442\u044c \u0443\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 NPM-\u043f\u0430\u043a\u0435\u0442?<\/p>\n<p>  \u041b\u0438\u0447\u043d\u043e \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u0422\u043e \u0435\u0441\u0442\u044c, \u044f \u0443\u0431\u0438\u0440\u0430\u044e \u0432\u0441\u0435 dot-\u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 ES6, \u043d\u043e \u0437\u0430\u0442\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0444\u0430\u0439\u043b\u044b \u0442\u0435\u0441\u0442\u043e\u0432 (\u044d\u0442\u043e \u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b) \u0438 \u0432\u0441\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e.<\/p>\n<p>  \u041c\u043e\u0439 <strong><code>.gitignore<\/code><\/strong>:<\/p>\n<pre><code>    .idea     .DS_Store     npm-debug.log     node_modules     lib     coverage <\/code><\/pre>\n<p>  \u041c\u043e\u0439 <strong><code>.npmignore<\/code><\/strong>:<\/p>\n<pre><code>src\/ .eslintrc .editorconfig .gitignore .jscsrc .idea .travis.yml coverage\/ <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 <a href=\"https:\/\/github.com\/aulizko\/ftp-reap\">\u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/a> \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u043a\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 ES6, \u043d\u0435 \u043f\u0438\u0430\u0440\u0430 \u0440\u0430\u0434\u0438, \u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u043b\u044f. \u0414\u043b\u044f \u0441\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c. <\/p>\n<h2>\u0427\u0435\u043a\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f<\/h2>\n<ol>\n<li>\u041f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u0442\u0435\u0441\u0442\u044b.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 Github.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u043d\u0430 Travis CI \u0438 Coverall, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0443 \u043d\u0438\u0445 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043d\u0430\u0448 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439.<\/li>\n<li>\u0415\u0449\u0435 \u0440\u0430\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e <strong><code>.travis.yml<\/code><\/strong> \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d.<\/li>\n<li>\u0412\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u0434 \u043d\u0430 Github.<\/li>\n<li>\u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e Travis \u043f\u0440\u043e\u0433\u043d\u0430\u043b \u0442\u0435\u0441\u0442\u044b, \u0438 \u0443 \u043d\u0435\u0433\u043e \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Node.js, \u0438 \u0447\u0442\u043e Coveralls \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0441\u0442\u0430\u043c\u0438.<\/li>\n<li>\u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e <strong><code>npm install [local path]<\/code><\/strong> \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u0422.\u0435. \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0448 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0435\u0432\u0430\u0436\u043d\u043e, \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e. \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0444\u0430\u0439\u043b\u044b, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b.<\/li>\n<li>\u0412\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 NPM. \u041d\u0443, \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 <code>npm publish && git push --tags<\/code>.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u043b\u0430\u0434\u0435\u0435\u043c \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u043c, \u0442\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0430 news.ycombinator.com \u0438 reddit. \u0410 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435, \u0432 \u0442\u0435 \u043a\u043e\u043c\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442.<\/li>\n<li>\u0412\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0445\u0430\u0431\u0440 \u0432 \u0445\u0430\u0431 \u00ab\u044f \u043f\u0438\u0430\u0440\u044e\u0441\u044c\u00bb.<\/li>\n<li>\u041f\u0440\u0430\u0437\u0434\u043d\u0443\u0435\u043c.<\/li>\n<\/ol>\n<h2>\u0415\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u0435\u0439<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0433\u0434\u0435-\u0442\u043e \u0432 <code>.\/README.md<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c), \u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0442\u0438\u043f\u0430 <code>https:\/\/github.com\/&lt;\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044f&gt;\/&lt;\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&gt;\/blob\/master\/examples\/&lt;\u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430&gt;<\/code>. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>examples\/&lt;\u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430&gt;<\/code>, \u0438 Github \u0441\u0430\u043c \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b. \u0427\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e, \u0438 NPM \u0442\u043e\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0444\u0430\u0439\u043b. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Github \u0438 Node.js, \u0433\u043b\u044f\u043d\u044c\u0442\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 <a href=\"https:\/\/github.com\/node-gh\/gh\">gh<\/a>. \u042d\u0442\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u043c \u0438\u0437 \u043f\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 node.<\/p>\n<p>  \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u0430\u0439\u0444\u0445\u0430\u043a \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 Github \u0432\u0430\u0448\u0435\u0439 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0430\u043f\u043a\u0438 (\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 <code>gh<\/code> \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d). <a href=\"https:\/\/gist.github.com\/mattdesl\/c11d2cd0b6d0bef2c4b9\">Gist<\/a> \u043b\u0435\u0436\u0438\u0442 \u0442\u0443\u0442.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043f\u0440\u0430\u0432\u043e\u043a \u0432 <strong><code>NPM<\/code><\/strong> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u044d\u0433\u0430 \u0432 <strong><code>git<\/code><\/strong> \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e:<\/p>\n<pre><code class=\"bash\">     alias npmpatch='npm version patch;npm publish;git push;git push --tags' <\/code><\/pre>\n<p>  \u041d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u0432\u044b, \u0430 \u044f, \u0431\u044b\u0432\u0430\u0435\u0442, \u043f\u043e 10-20 \u0440\u0430\u0437 \u043f\u043e\u0434\u0440\u044f\u0434 \u043f\u0440\u0430\u0432\u043b\u044e README. \u041d\u0443, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0442\u0430\u043c \u0432\u0441\u044f\u043a\u0438\u0435, \u0438 \u0442.\u043f. \u041c\u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0430\u043b\u0438\u0430\u0441:<\/p>\n<pre><code class=\"bash\">     alias gitreadme='git add README.md; git commit -m &quot;udpating readme&quot;; git push' <\/code><\/pre>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 ESLint, \u0430 \u043d\u0435 JSHint\/JSLint, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0443\u043c\u0435\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 ES6 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u0430 ESLint, \u043a \u0442\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u0430\u043a \u0432\u044b \u044d\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u0442. \u041d\u0443, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u0431\u0435\u0449\u0430\u0435\u0442 \u0443\u043c\u0435\u0442\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. <a href=\"https:\/\/twitter.com\/geteslint\/status\/573689939096793089\">\u041f\u0440\u0443\u0444<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, ESLint \u0438\u043c\u0435\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 <a href=\"http:\/\/eslint.org\/docs\/configuring\/#specifying-language-options\">\u043d\u0430\u0431\u043e\u0440<\/a> <a href=\"http:\/\/eslint.org\/docs\/rules\/#ecmascript-6\">\u043f\u0440\u0430\u0432\u0438\u043b<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0430 ECMAScript 6, \u043d\u043e \u0438 \u043f\u043b\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442 \u0432\u0430\u0441 \u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u0441 ECMAScript 5 \u043d\u0430 ES.next. <\/p>\n<p>  \u0423\u0434\u0430\u0447\u043d\u044b\u0445 \u0432\u0441\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445, \u0434\u0435\u0432\u0443\u0448\u0435\u043a \u2014 \u0441 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u043e\u043c, \u0430 \u043c\u043e\u0438\u043c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c-\u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u043c \u2014 \u0443\u0434\u0430\u0440\u043d\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0445\u043e\u0431\u0431\u0438-\u043f\u0440\u043e\u0435\u043a\u0442\u0430!      \t<\/p>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/252389\/\"> http:\/\/habrahabr.ru\/post\/252389\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440, \u0438 \u044f <strike>\u043f\u0438\u0448\u0443 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u044b \u043f\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c<\/strike> \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/45f\/dd1\/a27\/45fdd1a271614a4d96f030f37e06bc06.jpg\"\/><\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0443\u0431\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u043c \u0448\u0438\u043a\u043e\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0448\u0435\u0434\u0435\u0432\u0440, \u043d\u043e \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 Github \u0438\u043b\u0438 NPM, \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432 100500 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435. <\/p>\n<p>  \u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043e\u0441\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043b\u043e\u0431\u0437\u0438\u043a\u043e\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0430.<\/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-252587","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252587","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=252587"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252587\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=252587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=252587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=252587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}