{"id":18879923,"url":"https://github.com/gusenov/electron-seed","last_synced_at":"2026-05-06T04:32:34.940Z","repository":{"id":130181949,"uuid":"163072452","full_name":"gusenov/electron-seed","owner":"gusenov","description":"Создание Electron-приложения на ECMAScript 6.","archived":false,"fork":false,"pushed_at":"2021-12-25T20:29:53.000Z","size":139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-26T12:51:50.870Z","etag":null,"topics":["babel","electron","es6","jspm","seed-project"],"latest_commit_sha":null,"homepage":"https://electronjs.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gusenov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-25T10:23:23.000Z","updated_at":"2021-12-25T20:29:56.000Z","dependencies_parsed_at":"2023-05-30T05:30:45.056Z","dependency_job_id":null,"html_url":"https://github.com/gusenov/electron-seed","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/gusenov/electron-seed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusenov%2Felectron-seed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusenov%2Felectron-seed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusenov%2Felectron-seed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusenov%2Felectron-seed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gusenov","download_url":"https://codeload.github.com/gusenov/electron-seed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusenov%2Felectron-seed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32678608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babel","electron","es6","jspm","seed-project"],"created_at":"2024-11-08T06:40:30.276Z","updated_at":"2026-05-06T04:32:34.923Z","avatar_url":"https://github.com/gusenov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"* [Шаг № 1 - Установка npm и Node.js](#%D1%88%D0%B0%D0%B3--1)\n* [Шаг № 2 - Загрузка .gitignore для Node.js](#%D1%88%D0%B0%D0%B3--2)\n* [Шаг № 3 - Создание файла package.json](#%D1%88%D0%B0%D0%B3--3)\n* [Шаг № 4 - Установка Electron](#%D1%88%D0%B0%D0%B3--4)\n* [Шаг № 5 - Установка jspm (нужно для ES6-транспайлера)](#%D1%88%D0%B0%D0%B3--5)\n* [Шаг № 6 - Инициализация jspm](#%D1%88%D0%B0%D0%B3--6)\n* [Шаг № 7 - Патч конфигурации jspm](#%D1%88%D0%B0%D0%B3--7)\n* [Шаг № 8 - Добавление скрипта запускаемого главным процессом](#%D1%88%D0%B0%D0%B3--8)\n* [Шаг № 9 - Подключение ES6-транспайлера в файле index.html](#%D1%88%D0%B0%D0%B3--9)\n* [Шаг № 10 - Запуск Electron-приложения](#%D1%88%D0%B0%D0%B3--10)\n\n# Шаг № 1\n\nУстановка [npm](https://www.npmjs.com/) и [Node.js](https://nodejs.org/en/):\n\n```bash\n$ sudo apt-get install npm\n$ sudo apt-get install nodejs-legacy\n```\n\n# [Шаг № 2](https://github.com/gusenov/electron-seed/commit/b25052462dd10819b8be61c4ae13a35338dd70e7)\n\nЗагрузка [.gitignore для Node.js](https://github.com/github/gitignore/blob/master/Node.gitignore):\n\n```bash\n$ wget https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore -O .gitignore\n```\n\n# [Шаг № 3](https://github.com/gusenov/electron-seed/commit/463752d26cc1de0e8690d38e1bbb2e7f5a9a21fa)\n\nСоздание файла [package.json](https://github.com/gusenov/electron-seed/blob/463752d26cc1de0e8690d38e1bbb2e7f5a9a21fa/package.json):\n\n```json\n{\n  \"name\": \"electron-seed\",\n  \"description\": \"Seed project for electron apps.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/gusenov/electron-seed.git\"\n  },\n  \"homepage\": \"https://github.com/gusenov/electron-seed#readme\",\n  \"license\": \"MIT\"\n}\n```\n\n# [Шаг № 4](https://github.com/gusenov/electron-seed/commit/8fe874100e7a1cb1bcc273ebbc9b0de697b7c710)\n\nУстановка [Electron](https://electronjs.org/):\n\n```bash\n$ npm install electron --save-dev\n\n\u003e electron@4.0.0 postinstall /home/abbas/electron-seed/node_modules/electron\n\u003e node install.js\n\nelectron-seed@0.1.0 /home/abbas/electron-seed\n└─┬ electron@4.0.0\n  ├── @types/node@8.10.39\n  ├─┬ electron-download@4.1.1\n  │ ├─┬ debug@3.2.6\n  │ │ └── ms@2.1.1\n  │ ├── env-paths@1.0.0\n  │ ├─┬ fs-extra@4.0.3\n  │ │ ├── graceful-fs@4.1.15\n  │ │ ├── jsonfile@4.0.0\n  │ │ └── universalify@0.1.2\n  │ ├── minimist@1.2.0\n  │ ├─┬ nugget@2.0.1\n  │ │ ├─┬ debug@2.6.9\n  │ │ │ └── ms@2.0.0\n  │ │ ├─┬ pretty-bytes@1.0.4\n  │ │ │ ├── get-stdin@4.0.1\n  │ │ │ └─┬ meow@3.7.0\n  │ │ │   ├─┬ camelcase-keys@2.1.0\n  │ │ │   │ └── camelcase@2.1.1\n  │ │ │   ├── decamelize@1.2.0\n  │ │ │   ├─┬ loud-rejection@1.6.0\n  │ │ │   │ ├─┬ currently-unhandled@0.4.1\n  │ │ │   │ │ └── array-find-index@1.0.2\n  │ │ │   │ └── signal-exit@3.0.2\n  │ │ │   ├── map-obj@1.0.1\n  │ │ │   ├─┬ normalize-package-data@2.4.0\n  │ │ │   │ ├── hosted-git-info@2.7.1\n  │ │ │   │ ├─┬ is-builtin-module@1.0.0\n  │ │ │   │ │ └── builtin-modules@1.1.1\n  │ │ │   │ └─┬ validate-npm-package-license@3.0.4\n  │ │ │   │   ├─┬ spdx-correct@3.1.0\n  │ │ │   │   │ └── spdx-license-ids@3.0.3\n  │ │ │   │   └─┬ spdx-expression-parse@3.0.0\n  │ │ │   │     └── spdx-exceptions@2.2.0\n  │ │ │   ├── object-assign@4.1.1\n  │ │ │   ├─┬ read-pkg-up@1.0.1\n  │ │ │   │ ├─┬ find-up@1.1.2\n  │ │ │   │ │ ├── path-exists@2.1.0\n  │ │ │   │ │ └─┬ pinkie-promise@2.0.1\n  │ │ │   │ │   └── pinkie@2.0.4\n  │ │ │   │ └─┬ read-pkg@1.1.0\n  │ │ │   │   ├─┬ load-json-file@1.1.0\n  │ │ │   │   │ ├─┬ parse-json@2.2.0\n  │ │ │   │   │ │ └─┬ error-ex@1.3.2\n  │ │ │   │   │ │   └── is-arrayish@0.2.1\n  │ │ │   │   │ ├── pify@2.3.0\n  │ │ │   │   │ └─┬ strip-bom@2.0.0\n  │ │ │   │   │   └── is-utf8@0.2.1\n  │ │ │   │   └── path-type@1.1.0\n  │ │ │   ├─┬ redent@1.0.0\n  │ │ │   │ ├─┬ indent-string@2.1.0\n  │ │ │   │ │ └─┬ repeating@2.0.1\n  │ │ │   │ │   └── is-finite@1.0.2\n  │ │ │   │ └── strip-indent@1.0.1\n  │ │ │   └── trim-newlines@1.0.0\n  │ │ ├─┬ progress-stream@1.2.0\n  │ │ │ ├── speedometer@0.1.4\n  │ │ │ └─┬ through2@0.2.3\n  │ │ │   ├─┬ readable-stream@1.1.14\n  │ │ │   │ ├── isarray@0.0.1\n  │ │ │   │ └── string_decoder@0.10.31\n  │ │ │   └─┬ xtend@2.1.2\n  │ │ │     └── object-keys@0.4.0\n  │ │ ├─┬ request@2.88.0\n  │ │ │ ├── aws-sign2@0.7.0\n  │ │ │ ├── aws4@1.8.0\n  │ │ │ ├── caseless@0.12.0\n  │ │ │ ├─┬ combined-stream@1.0.7\n  │ │ │ │ └── delayed-stream@1.0.0\n  │ │ │ ├── extend@3.0.2\n  │ │ │ ├── forever-agent@0.6.1\n  │ │ │ ├─┬ form-data@2.3.3\n  │ │ │ │ └── asynckit@0.4.0\n  │ │ │ ├─┬ har-validator@5.1.3\n  │ │ │ │ ├─┬ ajv@6.6.2\n  │ │ │ │ │ ├── fast-deep-equal@2.0.1\n  │ │ │ │ │ ├── fast-json-stable-stringify@2.0.0\n  │ │ │ │ │ ├── json-schema-traverse@0.4.1\n  │ │ │ │ │ └─┬ uri-js@4.2.2\n  │ │ │ │ │   └── punycode@2.1.1\n  │ │ │ │ └── har-schema@2.0.0\n  │ │ │ ├─┬ http-signature@1.2.0\n  │ │ │ │ ├── assert-plus@1.0.0\n  │ │ │ │ ├─┬ jsprim@1.4.1\n  │ │ │ │ │ ├── extsprintf@1.3.0\n  │ │ │ │ │ ├── json-schema@0.2.3\n  │ │ │ │ │ └── verror@1.10.0\n  │ │ │ │ └─┬ sshpk@1.16.0\n  │ │ │ │   ├── asn1@0.2.4\n  │ │ │ │   ├── bcrypt-pbkdf@1.0.2\n  │ │ │ │   ├── dashdash@1.14.1\n  │ │ │ │   ├── ecc-jsbn@0.1.2\n  │ │ │ │   ├── getpass@0.1.7\n  │ │ │ │   ├── jsbn@0.1.1\n  │ │ │ │   ├── safer-buffer@2.1.2\n  │ │ │ │   └── tweetnacl@0.14.5\n  │ │ │ ├── is-typedarray@1.0.0\n  │ │ │ ├── isstream@0.1.2\n  │ │ │ ├── json-stringify-safe@5.0.1\n  │ │ │ ├─┬ mime-types@2.1.21\n  │ │ │ │ └── mime-db@1.37.0\n  │ │ │ ├── oauth-sign@0.9.0\n  │ │ │ ├── performance-now@2.1.0\n  │ │ │ ├── qs@6.5.2\n  │ │ │ ├── safe-buffer@5.1.2\n  │ │ │ ├─┬ tough-cookie@2.4.3\n  │ │ │ │ ├── psl@1.1.31\n  │ │ │ │ └── punycode@1.4.1\n  │ │ │ ├── tunnel-agent@0.6.0\n  │ │ │ └── uuid@3.3.2\n  │ │ ├─┬ single-line-log@1.1.2\n  │ │ │ └─┬ string-width@1.0.2\n  │ │ │   ├── code-point-at@1.1.0\n  │ │ │   ├─┬ is-fullwidth-code-point@1.0.0\n  │ │ │   │ └── number-is-nan@1.0.1\n  │ │ │   └─┬ strip-ansi@3.0.1\n  │ │ │     └── ansi-regex@2.1.1\n  │ │ └── throttleit@0.0.2\n  │ ├── path-exists@3.0.0\n  │ ├─┬ rc@1.2.8\n  │ │ ├── deep-extend@0.6.0\n  │ │ ├── ini@1.3.5\n  │ │ └── strip-json-comments@2.0.1\n  │ ├── semver@5.6.0\n  │ └─┬ sumchecker@2.0.2\n  │   └─┬ debug@2.6.9\n  │     └── ms@2.0.0\n  └─┬ extract-zip@1.6.7\n    ├─┬ concat-stream@1.6.2\n    │ ├── buffer-from@1.1.1\n    │ ├── inherits@2.0.3\n    │ ├─┬ readable-stream@2.3.6\n    │ │ ├── core-util-is@1.0.2\n    │ │ ├── isarray@1.0.0\n    │ │ ├── process-nextick-args@2.0.0\n    │ │ ├── string_decoder@1.1.1\n    │ │ └── util-deprecate@1.0.2\n    │ └── typedarray@0.0.6\n    ├─┬ debug@2.6.9\n    │ └── ms@2.0.0\n    ├─┬ mkdirp@0.5.1\n    │ └── minimist@0.0.8\n    └─┬ yauzl@2.4.1\n      └─┬ fd-slicer@1.0.1\n        └── pend@1.2.0\n```\n\nФайл [package.json](https://github.com/gusenov/electron-seed/blob/8fe874100e7a1cb1bcc273ebbc9b0de697b7c710/package.json) после установки [Electron](https://electronjs.org/):\n\n```json\n{\n  \"name\": \"electron-seed\",\n  \"description\": \"Seed project for electron apps.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/gusenov/electron-seed.git\"\n  },\n  \"homepage\": \"https://github.com/gusenov/electron-seed#readme\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"electron\": \"^4.0.0\"\n  }\n}\n```\n\n# [Шаг № 5](https://github.com/gusenov/electron-seed/commit/5d59aabc393e3824d076593d08e91e08fb35aabd)\n\nУстановка [jspm](https://jspm.org/):\n\n```bash\n$ npm install jspm --save-dev\n\nelectron-seed@0.1.0 /home/abbas/electron-seed\n├─┬ electron@4.0.0\n│ ├─┬ electron-download@4.1.1\n│ │ ├─┬ nugget@2.0.1\n│ │ │ └─┬ debug@2.6.9\n│ │ │   └── ms@2.0.0\n│ │ └─┬ sumchecker@2.0.2\n│ │   └─┬ debug@2.6.9\n│ │     └── ms@2.0.0\n│ └─┬ extract-zip@1.6.7\n│   ├─┬ concat-stream@1.6.2\n│   │ └─┬ readable-stream@2.3.6\n│   │   └── isarray@1.0.0\n│   └─┬ debug@2.6.9\n│     └── ms@2.0.0\n└─┬ jspm@0.16.53\n  ├─┬ chalk@1.1.3\n  │ ├── ansi-styles@2.2.1\n  │ ├── escape-string-regexp@1.0.5\n  │ ├── has-ansi@2.0.0\n  │ └── supports-color@2.0.0\n  ├── core-js@1.2.7\n  ├─┬ glob@6.0.4\n  │ ├─┬ inflight@1.0.6\n  │ │ └── wrappy@1.0.2\n  │ ├── once@1.4.0\n  │ └── path-is-absolute@1.0.1\n  ├─┬ jspm-github@0.13.20\n  │ ├─┬ expand-tilde@1.2.2\n  │ │ └── os-homedir@1.0.2\n  │ ├── netrc@0.1.4\n  │ ├─┬ tar@2.2.1\n  │ │ ├── block-stream@0.0.9\n  │ │ └── fstream@1.0.11\n  │ └─┬ which@1.3.1\n  │   └── isexe@2.0.0\n  ├─┬ jspm-npm@0.26.14\n  │ ├── buffer-peek-stream@1.0.1\n  │ ├── glob@5.0.15\n  │ ├─┬ resolve@1.9.0\n  │ │ └── path-parse@1.0.6\n  │ └── tar@1.0.3\n  ├─┬ jspm-registry@0.4.4\n  │ └── semver@4.3.6\n  ├─┬ liftoff@2.5.0\n  │ ├─┬ findup-sync@2.0.0\n  │ │ ├── detect-file@1.0.0\n  │ │ ├─┬ is-glob@3.1.0\n  │ │ │ └── is-extglob@2.1.1\n  │ │ ├─┬ micromatch@3.1.10\n  │ │ │ ├── arr-diff@4.0.0\n  │ │ │ ├── array-unique@0.3.2\n  │ │ │ ├─┬ braces@2.3.2\n  │ │ │ │ ├── arr-flatten@1.1.0\n  │ │ │ │ ├─┬ extend-shallow@2.0.1\n  │ │ │ │ │ └── is-extendable@0.1.1\n  │ │ │ │ ├─┬ fill-range@4.0.0\n  │ │ │ │ │ ├── extend-shallow@2.0.1\n  │ │ │ │ │ ├── is-number@3.0.0\n  │ │ │ │ │ ├── repeat-string@1.6.1\n  │ │ │ │ │ └── to-regex-range@2.1.1\n  │ │ │ │ ├── repeat-element@1.1.3\n  │ │ │ │ ├─┬ snapdragon-node@2.1.1\n  │ │ │ │ │ ├─┬ define-property@1.0.0\n  │ │ │ │ │ │ └─┬ is-descriptor@1.0.2\n  │ │ │ │ │ │   ├── is-accessor-descriptor@1.0.0\n  │ │ │ │ │ │   ├── is-data-descriptor@1.0.0\n  │ │ │ │ │ │   └── kind-of@6.0.2\n  │ │ │ │ │ └── snapdragon-util@3.0.1\n  │ │ │ │ └── split-string@3.1.0\n  │ │ │ ├─┬ define-property@2.0.2\n  │ │ │ │ └─┬ is-descriptor@1.0.2\n  │ │ │ │   ├── is-accessor-descriptor@1.0.0\n  │ │ │ │   ├── is-data-descriptor@1.0.0\n  │ │ │ │   └── kind-of@6.0.2\n  │ │ │ ├─┬ extend-shallow@3.0.2\n  │ │ │ │ ├── assign-symbols@1.0.0\n  │ │ │ │ └── is-extendable@1.0.1\n  │ │ │ ├─┬ extglob@2.0.4\n  │ │ │ │ ├─┬ define-property@1.0.0\n  │ │ │ │ │ └─┬ is-descriptor@1.0.2\n  │ │ │ │ │   ├── is-accessor-descriptor@1.0.0\n  │ │ │ │ │   ├── is-data-descriptor@1.0.0\n  │ │ │ │ │   └── kind-of@6.0.2\n  │ │ │ │ ├─┬ expand-brackets@2.1.4\n  │ │ │ │ │ ├─┬ debug@2.6.9\n  │ │ │ │ │ │ └── ms@2.0.0\n  │ │ │ │ │ ├── define-property@0.2.5\n  │ │ │ │ │ ├── extend-shallow@2.0.1\n  │ │ │ │ │ └── posix-character-classes@0.1.1\n  │ │ │ │ └── extend-shallow@2.0.1\n  │ │ │ ├── fragment-cache@0.2.1\n  │ │ │ ├── kind-of@6.0.2\n  │ │ │ ├─┬ nanomatch@1.2.13\n  │ │ │ │ ├── is-windows@1.0.2\n  │ │ │ │ └── kind-of@6.0.2\n  │ │ │ ├─┬ regex-not@1.0.2\n  │ │ │ │ └─┬ safe-regex@1.1.0\n  │ │ │ │   └── ret@0.1.15\n  │ │ │ ├─┬ snapdragon@0.8.2\n  │ │ │ │ ├─┬ base@0.11.2\n  │ │ │ │ │ ├─┬ cache-base@1.0.1\n  │ │ │ │ │ │ ├─┬ collection-visit@1.0.0\n  │ │ │ │ │ │ │ ├── map-visit@1.0.0\n  │ │ │ │ │ │ │ └── object-visit@1.0.1\n  │ │ │ │ │ │ ├── get-value@2.0.6\n  │ │ │ │ │ │ ├─┬ has-value@1.0.0\n  │ │ │ │ │ │ │ └─┬ has-values@1.0.0\n  │ │ │ │ │ │ │   └── kind-of@4.0.0\n  │ │ │ │ │ │ ├─┬ set-value@2.0.0\n  │ │ │ │ │ │ │ └── extend-shallow@2.0.1\n  │ │ │ │ │ │ ├── to-object-path@0.3.0\n  │ │ │ │ │ │ ├─┬ union-value@1.0.0\n  │ │ │ │ │ │ │ └─┬ set-value@0.4.3\n  │ │ │ │ │ │ │   └── extend-shallow@2.0.1\n  │ │ │ │ │ │ └─┬ unset-value@1.0.0\n  │ │ │ │ │ │   └─┬ has-value@0.3.1\n  │ │ │ │ │ │     ├── has-values@0.1.4\n  │ │ │ │ │ │     └─┬ isobject@2.1.0\n  │ │ │ │ │ │       └── isarray@1.0.0\n  │ │ │ │ │ ├─┬ class-utils@0.3.6\n  │ │ │ │ │ │ ├── arr-union@3.1.0\n  │ │ │ │ │ │ ├── define-property@0.2.5\n  │ │ │ │ │ │ └─┬ static-extend@0.1.2\n  │ │ │ │ │ │   ├── define-property@0.2.5\n  │ │ │ │ │ │   └─┬ object-copy@0.1.0\n  │ │ │ │ │ │     ├── copy-descriptor@0.1.1\n  │ │ │ │ │ │     └── define-property@0.2.5\n  │ │ │ │ │ ├── component-emitter@1.2.1\n  │ │ │ │ │ ├─┬ define-property@1.0.0\n  │ │ │ │ │ │ └─┬ is-descriptor@1.0.2\n  │ │ │ │ │ │   ├── is-accessor-descriptor@1.0.0\n  │ │ │ │ │ │   ├── is-data-descriptor@1.0.0\n  │ │ │ │ │ │   └── kind-of@6.0.2\n  │ │ │ │ │ ├─┬ mixin-deep@1.3.1\n  │ │ │ │ │ │ └── is-extendable@1.0.1\n  │ │ │ │ │ └── pascalcase@0.1.1\n  │ │ │ │ ├─┬ debug@2.6.9\n  │ │ │ │ │ └── ms@2.0.0\n  │ │ │ │ ├─┬ define-property@0.2.5\n  │ │ │ │ │ └─┬ is-descriptor@0.1.6\n  │ │ │ │ │   ├── is-accessor-descriptor@0.1.6\n  │ │ │ │ │   ├── is-data-descriptor@0.1.4\n  │ │ │ │ │   └── kind-of@5.1.0\n  │ │ │ │ ├── extend-shallow@2.0.1\n  │ │ │ │ ├─┬ source-map-resolve@0.5.2\n  │ │ │ │ │ ├── atob@2.1.2\n  │ │ │ │ │ ├── decode-uri-component@0.2.0\n  │ │ │ │ │ ├── resolve-url@0.2.1\n  │ │ │ │ │ ├── source-map-url@0.4.0\n  │ │ │ │ │ └── urix@0.1.0\n  │ │ │ │ └── use@3.1.1\n  │ │ │ └── to-regex@3.0.2\n  │ │ └─┬ resolve-dir@1.0.1\n  │ │   ├── expand-tilde@2.0.2\n  │ │   └─┬ global-modules@1.0.0\n  │ │     └─┬ global-prefix@1.0.2\n  │ │       └── expand-tilde@2.0.2\n  │ ├─┬ fined@1.1.1\n  │ │ ├─┬ expand-tilde@2.0.2\n  │ │ │ └─┬ homedir-polyfill@1.0.1\n  │ │ │   └── parse-passwd@1.0.0\n  │ │ ├─┬ object.defaults@1.1.0\n  │ │ │ ├── array-each@1.0.1\n  │ │ │ └── array-slice@1.1.0\n  │ │ ├── object.pick@1.3.0\n  │ │ └─┬ parse-filepath@1.0.2\n  │ │   ├─┬ is-absolute@1.0.0\n  │ │   │ └─┬ is-relative@1.0.0\n  │ │   │   └─┬ is-unc-path@1.0.0\n  │ │   │     └── unc-path-regex@0.1.2\n  │ │   ├── map-cache@0.2.2\n  │ │   └─┬ path-root@0.1.1\n  │ │     └── path-root-regex@0.1.2\n  │ ├── flagged-respawn@1.0.1\n  │ ├─┬ is-plain-object@2.0.4\n  │ │ └── isobject@3.0.1\n  │ ├─┬ object.map@1.0.1\n  │ │ ├─┬ for-own@1.0.0\n  │ │ │ └── for-in@1.0.2\n  │ │ └─┬ make-iterator@1.0.1\n  │ │   └── kind-of@6.0.2\n  │ └── rechoir@0.6.2\n  ├─┬ minimatch@3.0.4\n  │ └─┬ brace-expansion@1.1.11\n  │   ├── balanced-match@1.0.0\n  │   └── concat-map@0.0.1\n  ├── ncp@2.0.0\n  ├─┬ proper-lockfile@1.2.0\n  │ ├── err-code@1.1.2\n  │ └── retry@0.10.1\n  ├─┬ rimraf@2.6.2\n  │ └─┬ glob@7.1.3\n  │   └── fs.realpath@1.0.0\n  ├── rsvp@3.6.2\n  ├─┬ systemjs@0.19.46\n  │ └── when@3.7.8\n  ├─┬ systemjs-builder@0.15.36\n  │ ├─┬ babel-core@6.26.3\n  │ │ ├─┬ babel-code-frame@6.26.0\n  │ │ │ ├── esutils@2.0.2\n  │ │ │ └── js-tokens@3.0.2\n  │ │ ├─┬ babel-generator@6.26.1\n  │ │ │ ├── detect-indent@4.0.0\n  │ │ │ ├── jsesc@1.3.0\n  │ │ │ └── trim-right@1.0.1\n  │ │ ├── babel-helpers@6.24.1\n  │ │ ├── babel-messages@6.23.0\n  │ │ ├─┬ babel-register@6.26.0\n  │ │ │ ├── core-js@2.6.1\n  │ │ │ └─┬ home-or-tmp@2.0.0\n  │ │ │   └── os-tmpdir@1.0.2\n  │ │ ├─┬ babel-runtime@6.26.0\n  │ │ │ ├── core-js@2.6.1\n  │ │ │ └── regenerator-runtime@0.11.1\n  │ │ ├── babel-template@6.26.0\n  │ │ ├─┬ babel-traverse@6.26.0\n  │ │ │ ├─┬ debug@2.6.9\n  │ │ │ │ └── ms@2.0.0\n  │ │ │ ├── globals@9.18.0\n  │ │ │ └─┬ invariant@2.2.4\n  │ │ │   └── loose-envify@1.4.0\n  │ │ ├─┬ babel-types@6.26.0\n  │ │ │ └── to-fast-properties@1.0.3\n  │ │ ├── babylon@6.18.0\n  │ │ ├── convert-source-map@1.6.0\n  │ │ ├─┬ debug@2.6.9\n  │ │ │ └── ms@2.0.0\n  │ │ ├── json5@0.5.1\n  │ │ ├── lodash@4.17.11\n  │ │ ├── private@0.1.8\n  │ │ └── slash@1.0.0\n  │ ├── babel-plugin-transform-cjs-system-wrapper@0.3.0\n  │ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.24.1\n  │ │ └── babel-helper-hoist-variables@6.24.1\n  │ ├── babel-plugin-transform-global-system-wrapper@0.0.1\n  │ ├── babel-plugin-transform-system-register@0.0.1\n  │ ├── bluebird@3.5.3\n  │ ├── data-uri-to-buffer@0.0.4\n  │ ├─┬ es6-template-strings@2.0.1\n  │ │ ├─┬ es5-ext@0.10.46\n  │ │ │ ├── es6-iterator@2.0.3\n  │ │ │ ├── es6-symbol@3.1.1\n  │ │ │ └── next-tick@1.0.0\n  │ │ └─┬ esniff@1.1.0\n  │ │   └── d@1.0.0\n  │ ├── glob@7.1.3\n  │ ├─┬ rollup@0.36.4\n  │ │ └── source-map-support@0.4.18\n  │ ├── source-map@0.5.7\n  │ └─┬ uglify-js@2.7.5\n  │   └── async@0.2.10\n  ├─┬ traceur@0.0.105\n  │ ├─┬ commander@2.9.0\n  │ │ └── graceful-readlink@1.0.1\n  │ ├── glob@5.0.15\n  │ ├── semver@4.3.6\n  │ └─┬ source-map-support@0.2.10\n  │   └─┬ source-map@0.1.32\n  │     └── amdefine@1.0.1\n  └─┬ uglify-js@2.8.29\n    ├── uglify-to-browserify@1.0.2\n    └─┬ yargs@3.10.0\n      ├── camelcase@1.2.1\n      ├─┬ cliui@2.1.0\n      │ ├─┬ center-align@0.1.3\n      │ │ ├─┬ align-text@0.1.4\n      │ │ │ ├─┬ kind-of@3.2.2\n      │ │ │ │ └── is-buffer@1.1.6\n      │ │ │ └── longest@1.0.1\n      │ │ └── lazy-cache@1.0.4\n      │ ├── right-align@0.1.3\n      │ └── wordwrap@0.0.2\n      └── window-size@0.1.0\n```\n\nФайл [package.json](https://github.com/gusenov/electron-seed/blob/5d59aabc393e3824d076593d08e91e08fb35aabd/package.json) после установки [jspm](https://jspm.org/):\n\n```json\n{\n  \"name\": \"electron-seed\",\n  \"description\": \"Seed project for electron apps.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/gusenov/electron-seed.git\"\n  },\n  \"homepage\": \"https://github.com/gusenov/electron-seed#readme\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"electron\": \"^4.0.0\",\n    \"jspm\": \"^0.16.53\"\n  }\n}\n```\n\n# [Шаг № 6](https://github.com/gusenov/electron-seed/commit/39cb1fd453e3fc6c07070db1d20b9af7df93f0eb)\n\nИнициализация [jspm](https://jspm.org/):\n\n```bash\n./node_modules/.bin/jspm init\n```\n\n```text\nWould you like jspm to prefix the jspm package.json properties under jspm? [yes]:\nEnter server baseURL (public folder path) [./]:\nEnter jspm packages folder [./jspm_packages]:\nEnter config file path [./config.js]:\nConfiguration file config.js doesn't exist, create it? [yes]:\nEnter client baseURL (public folder URL) [/]:\nDo you wish to use a transpiler? [yes]:\nWhich ES6 transpiler would you like to use, Babel, TypeScript or Traceur? [babel]:\nok   Verified package.json at package.json\n     Verified config file at config.js\n     Looking up loader files...\n       system.js\n       system.src.js\n       system.js.map\n       system-csp-production.js\n       system-csp-production.js.map\n       system-polyfills.js\n       system-csp-production.src.js\n       system-polyfills.js.map\n       system-polyfills.src.js\n\n     Using loader versions:\n       systemjs@0.19.46\n     Looking up npm:babel-core\n     Looking up npm:babel-runtime\n     Looking up npm:core-js\n     Creating registry cache...\n     Downloading npm:core-js@1.2.7\n     Downloading npm:babel-runtime@5.8.38\n     Downloading npm:babel-core@5.8.38\n     Looking up github:jspm/nodelibs-process\nok   Installed babel as npm:babel-core@^5.8.24 (5.8.38)\n     Downloading github:jspm/nodelibs-process@0.1.2\n     Looking up npm:process\n     Downloading npm:process@0.11.10\n     Looking up github:jspm/nodelibs-path\n     Looking up github:jspm/nodelibs-fs\n     Looking up github:systemjs/plugin-json\nok   Installed npm:process@^0.11.0 (0.11.10)\nok   Installed github:jspm/nodelibs-process@^0.1.0 (0.1.2)\n     Looking up github:jspm/nodelibs-vm\n     Downloading github:systemjs/plugin-json@0.1.2\n     Downloading github:jspm/nodelibs-path@0.1.0\n     Downloading github:jspm/nodelibs-fs@0.1.2\n     Looking up github:jspm/nodelibs-assert\n     Looking up npm:path-browserify\n     Downloading github:jspm/nodelibs-vm@0.1.0\n     Downloading github:jspm/nodelibs-assert@0.1.0\n     Downloading npm:path-browserify@0.0.0\nok   Installed npm:path-browserify@0.0.0 (0.0.0)\n     Looking up npm:vm-browserify\n     Looking up npm:assert\n     Downloading npm:assert@1.4.1\n     Looking up npm:util\nok   Installed github:jspm/nodelibs-fs@^0.1.0 (0.1.2)\nok   Installed github:systemjs/plugin-json@^0.1.0 (0.1.2)\nok   Installed github:jspm/nodelibs-path@^0.1.0 (0.1.0)\n     Downloading npm:vm-browserify@0.0.4\n     Looking up npm:indexof\n     Downloading npm:util@0.10.3\n     Looking up npm:inherits\nok   Installed npm:assert@^1.3.0 (1.4.1)\n     Downloading npm:indexof@0.0.1\n     Downloading npm:inherits@2.0.1\nok   Installed npm:vm-browserify@0.0.4 (0.0.4)\nok   Installed npm:util@0.10.3 (0.10.3)\nok   Installed github:jspm/nodelibs-vm@^0.1.0 (0.1.0)\nok   Installed github:jspm/nodelibs-assert@^0.1.0 (0.1.0)\nok   Installed npm:indexof@0.0.1 (0.0.1)\nok   Installed npm:inherits@2.0.1 (2.0.1)\n     Looking up github:jspm/nodelibs-util\n     Downloading github:jspm/nodelibs-util@0.1.0\nok   Installed github:jspm/nodelibs-util@^0.1.0 (0.1.0)\n     Looking up github:jspm/nodelibs-buffer\n     Downloading github:jspm/nodelibs-buffer@0.1.1\n     Looking up npm:buffer\n     Downloading npm:buffer@5.2.1\n     Looking up npm:base64-js\n     Looking up npm:ieee754\n     Downloading npm:base64-js@1.3.0\nok   Installed github:jspm/nodelibs-buffer@^0.1.0 (0.1.1)\n     Downloading npm:ieee754@1.1.12\nok   Installed npm:buffer@^5.0.6 (5.2.1)\nok   Installed npm:base64-js@^1.0.2 (1.3.0)\nok   Installed npm:ieee754@^1.1.4 (1.1.12)\nok   Installed babel-runtime as npm:babel-runtime@^5.8.24 (5.8.38)\nok   Installed core-js as npm:core-js@^1.1.4 (1.2.7)\n\n     The following new package versions were substituted by install deduping:\n\n       util 0.10.4 -\u003e 0.10.3\n\nok   Loader files downloaded successfully\n```\n\nФайл [package.json](https://github.com/gusenov/electron-seed/blob/39cb1fd453e3fc6c07070db1d20b9af7df93f0eb/package.json) после инициализации [jspm](https://jspm.org/):\n\n```json\n{\n  \"name\": \"electron-seed\",\n  \"description\": \"Seed project for electron apps.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/gusenov/electron-seed.git\"\n  },\n  \"homepage\": \"https://github.com/gusenov/electron-seed#readme\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"electron\": \"^4.0.0\",\n    \"jspm\": \"^0.16.53\"\n  },\n  \"jspm\": {\n    \"devDependencies\": {\n      \"babel\": \"npm:babel-core@^5.8.24\",\n      \"babel-runtime\": \"npm:babel-runtime@^5.8.24\",\n      \"core-js\": \"npm:core-js@^1.1.4\"\n    }\n  }\n}\n```\n\nФайл [config.js](https://github.com/gusenov/electron-seed/blob/39cb1fd453e3fc6c07070db1d20b9af7df93f0eb/config.js) после инициализации [jspm](https://jspm.org/):\n\n```js\nSystem.config({\n  baseURL: \"/\",\n  defaultJSExtensions: true,\n  transpiler: \"babel\",\n  babelOptions: {\n    \"optional\": [\n      \"runtime\",\n      \"optimisation.modules.system\"\n    ]\n  },\n  paths: {\n    \"github:*\": \"jspm_packages/github/*\",\n    \"npm:*\": \"jspm_packages/npm/*\"\n  },\n\n  map: {\n    \"babel\": \"npm:babel-core@5.8.38\",\n    \"babel-runtime\": \"npm:babel-runtime@5.8.38\",\n    \"core-js\": \"npm:core-js@1.2.7\",\n    \"github:jspm/nodelibs-assert@0.1.0\": {\n      \"assert\": \"npm:assert@1.4.1\"\n    },\n    \"github:jspm/nodelibs-buffer@0.1.1\": {\n      \"buffer\": \"npm:buffer@5.2.1\"\n    },\n    \"github:jspm/nodelibs-path@0.1.0\": {\n      \"path-browserify\": \"npm:path-browserify@0.0.0\"\n    },\n    \"github:jspm/nodelibs-process@0.1.2\": {\n      \"process\": \"npm:process@0.11.10\"\n    },\n    \"github:jspm/nodelibs-util@0.1.0\": {\n      \"util\": \"npm:util@0.10.3\"\n    },\n    \"github:jspm/nodelibs-vm@0.1.0\": {\n      \"vm-browserify\": \"npm:vm-browserify@0.0.4\"\n    },\n    \"npm:assert@1.4.1\": {\n      \"assert\": \"github:jspm/nodelibs-assert@0.1.0\",\n      \"buffer\": \"github:jspm/nodelibs-buffer@0.1.1\",\n      \"process\": \"github:jspm/nodelibs-process@0.1.2\",\n      \"util\": \"npm:util@0.10.3\"\n    },\n    \"npm:babel-runtime@5.8.38\": {\n      \"process\": \"github:jspm/nodelibs-process@0.1.2\"\n    },\n    \"npm:buffer@5.2.1\": {\n      \"base64-js\": \"npm:base64-js@1.3.0\",\n      \"ieee754\": \"npm:ieee754@1.1.12\"\n    },\n    \"npm:core-js@1.2.7\": {\n      \"fs\": \"github:jspm/nodelibs-fs@0.1.2\",\n      \"path\": \"github:jspm/nodelibs-path@0.1.0\",\n      \"process\": \"github:jspm/nodelibs-process@0.1.2\",\n      \"systemjs-json\": \"github:systemjs/plugin-json@0.1.2\"\n    },\n    \"npm:inherits@2.0.1\": {\n      \"util\": \"github:jspm/nodelibs-util@0.1.0\"\n    },\n    \"npm:path-browserify@0.0.0\": {\n      \"process\": \"github:jspm/nodelibs-process@0.1.2\"\n    },\n    \"npm:process@0.11.10\": {\n      \"assert\": \"github:jspm/nodelibs-assert@0.1.0\",\n      \"fs\": \"github:jspm/nodelibs-fs@0.1.2\",\n      \"vm\": \"github:jspm/nodelibs-vm@0.1.0\"\n    },\n    \"npm:util@0.10.3\": {\n      \"inherits\": \"npm:inherits@2.0.1\",\n      \"process\": \"github:jspm/nodelibs-process@0.1.2\"\n    },\n    \"npm:vm-browserify@0.0.4\": {\n      \"indexof\": \"npm:indexof@0.0.1\"\n    }\n  }\n});\n```\n\n# [Шаг № 7](https://github.com/gusenov/electron-seed/commit/001cfff1b70180fad534e8c4d91a94b748c3bce3)\n\nПатч конфигурации jspm:\n\n```bash\nsed -i -e 's|\"github:\\*\": \"jspm_packages/github/\\*\"|\"github:\\*\": \"\\./jspm_packages/github/\\*\"|g' \"config.js\"\nsed -i -e 's|\"npm:\\*\": \"jspm_packages/npm/\\*\"|\"npm:\\*\": \"\\./jspm_packages/npm/\\*\"|g' \"config.js\"\n```\n\nТ.е. замена в файле [config.js](https://github.com/gusenov/electron-seed/blob/001cfff1b70180fad534e8c4d91a94b748c3bce3/config.js) строк:\n\n```js\n\"github:*\": \"jspm_packages/github/*\",\n\"npm:*\": \"jspm_packages/npm/*\"\n```\n\nна:\n\n```js\n\"github:*\": \"./jspm_packages/github/*\",\n\"npm:*\": \"./jspm_packages/npm/*\"\n```\n\n# [Шаг № 8](https://github.com/gusenov/electron-seed/commit/270264593151df2ce93c988716a36e4a19b58174)\n\nДобавление скрипта в [package.json](https://github.com/gusenov/electron-seed/blob/270264593151df2ce93c988716a36e4a19b58174/package.json), который запустится *единственным главным процессом*.\n\nФайл [package.json](https://github.com/gusenov/electron-seed/blob/270264593151df2ce93c988716a36e4a19b58174/package.json):\n\n```json\n{\n  \"name\": \"electron-seed\",\n  \"description\": \"Seed project for electron apps.\",\n  \"main\": \"main.js\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/gusenov/electron-seed.git\"\n  },\n  \"homepage\": \"https://github.com/gusenov/electron-seed#readme\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"electron\": \"^4.0.0\",\n    \"jspm\": \"^0.16.53\"\n  },\n  \"jspm\": {\n    \"devDependencies\": {\n      \"babel\": \"npm:babel-core@^5.8.24\",\n      \"babel-runtime\": \"npm:babel-runtime@^5.8.24\",\n      \"core-js\": \"npm:core-js@^1.1.4\"\n    }\n  }\n}\n```\n\nСкрипт запускаемый *единственным главным процессом* может отображать GUI и создавать веб-страницы:\n\nФайл [main.js](https://github.com/gusenov/electron-seed/blob/270264593151df2ce93c988716a36e4a19b58174/main.js):\n\n```js\nconst { app, BrowserWindow } = require('electron')\n\n// Глобальная ссылка для удержания объекта окна, иначе окно автоматически закроется,\n// когда JavaScript-объект утилизируется сборщиком мусора:\nlet win\n\nfunction createWindow () {\n  // Создать окно браузера:\n  win = new BrowserWindow({ width: 800, height: 600 })\n\n  // Загрузить index.html в созданное окно браузера:\n  win.loadFile('index.html')\n\n  // Открыть DevTools:\n  win.webContents.openDevTools()\n\n  // Обработчик закрытия окна браузера:\n  win.on('closed', () =\u003e {\n    // Если приложение поддерживает несколько окон, то нужно хранить их в массиве.\n    // Здесь же нужно удалять соответствующие элементы:\n\n    // Удаление ссылки на объект окна:\n    win = null\n  })\n}\n\n// Этот метод будет вызван после того как Electron завершит инициализацию\n// и будет готов создать окна браузера\n// (некоторые API могут использоваться только после того как произойдёт это событие):\napp.on('ready', createWindow)\n\n// Выйти, когда все окна закрылись:\napp.on('window-all-closed', () =\u003e {\n  // На macOS приложение и его меню должно оставаться активным\n  // до тех пор пока пользователь не выйдет из приложения явно нажатием Cmd + Q:\n  if (process.platform !== 'darwin') {\n    app.quit()\n  }\n})\n\napp.on('activate', () =\u003e {\n  // На macOS нужно пересоздавать окно приложения,\n  // когда нажат значок приложения на панели и нет других открытых окон:\n  if (win === null) {\n    createWindow()\n  }\n})\n\n// В этот файл можно включить оставшуюся часть кода приложения,\n// который должен выполняться в единственном главном процессе.\n// Можно также разместить его в отдельных файлах, а здесь запросить.\n```\n\nElectron использует мультипроцессную архитектуру Chromium для отображения веб-страниц.\nКаждая веб-страница работает в собственном процессе, который называется *рендерингом*.\nВ обыкновенных браузерах, веб-страницы запускаются в песочницах и не могут получить доступ к нативным ресурсам.\nНо в Electron на веб-страницах пользователям доступен Node.js API, который позволяет низкоуровневое взаимодействие с ОС.\n\nФайл [index.html](https://github.com/gusenov/electron-seed/blob/270264593151df2ce93c988716a36e4a19b58174/index.html):\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"ru\"\u003e\n  \u003chead\u003e\n    \u003cmeta charset=\"utf-8\"\u003e\n    \u003ctitle\u003eЗдравствуй, мир!\u003c/title\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003ch1\u003eЗдравствуй, мир!\u003c/h1\u003e\n    Используется Node.js \u003cscript\u003edocument.write(process.versions.node)\u003c/script\u003e,\n    Chrome \u003cscript\u003edocument.write(process.versions.chrome)\u003c/script\u003e,\n    и Electron \u003cscript\u003edocument.write(process.versions.electron)\u003c/script\u003e.\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n# [Шаг № 9](https://github.com/gusenov/electron-seed/commit/136f406b9e8a590788d419894a918e2a8f99077f)\n\nПодключение ES6-транспайлера в файле [index.html](https://github.com/gusenov/electron-seed/blob/136f406b9e8a590788d419894a918e2a8f99077f/index.html):\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"ru\"\u003e\n  \u003chead\u003e\n    \u003cmeta charset=\"utf-8\"\u003e\n    \u003ctitle\u003eЗдравствуй, мир!\u003c/title\u003e\n\n    \u003cscript src=\"jspm_packages/system.js\"\u003e\u003c/script\u003e\n    \u003cscript src=\"config.js\"\u003e\u003c/script\u003e\n    \u003cscript\u003e\n      System.import('./lib/main.js');\n    \u003c/script\u003e\n\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003ch1\u003eЗдравствуй, мир!\u003c/h1\u003e\n    Используется Node.js \u003cscript\u003edocument.write(process.versions.node)\u003c/script\u003e,\n    Chrome \u003cscript\u003edocument.write(process.versions.chrome)\u003c/script\u003e,\n    и Electron \u003cscript\u003edocument.write(process.versions.electron)\u003c/script\u003e.\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\nПримеры:\n\n[lib/main.js](https://github.com/gusenov/electron-seed/blob/136f406b9e8a590788d419894a918e2a8f99077f/lib/main.js):\n\n```js\nimport { Point } from './Point.js';\nimport { ColorPoint } from './ColorPoint.js';\n\nconst firstPoint = new Point(2, 10)\nconsole.log('Первая точка: ' + firstPoint)\n\nlet colorPoint = new ColorPoint(2, 10, 'green')\nconsole.log('Вторая точка: ' + colorPoint)\n\ncolorPoint = ColorPoint.default()\nconsole.log('Цветная точка по умолчанию: ' + colorPoint)\n```\n\n[lib/Point.js](https://github.com/gusenov/electron-seed/blob/136f406b9e8a590788d419894a918e2a8f99077f/lib/Point.js):\n\n```js\nexport class Point {\n\n  constructor(x, y) {\n    this.x = x\n    this.y = y\n  }\n\n  toString() {\n    return '[X=' + this.x + ', Y=' + this.y + ']'\n  }\n\n}\n```\n\n[lib/ColorPoint.js](https://github.com/gusenov/electron-seed/blob/136f406b9e8a590788d419894a918e2a8f99077f/lib/ColorPoint.js):\n\n```js\nimport { Point } from './Point.js';\n\nexport class ColorPoint extends Point {\n\n    static default() {\n        return new ColorPoint(0, 0, 'black')\n    }\n\n    constructor(x = 0, y = 0, color = 'white') {\n        super(x, y)\n        this.color = color\n    }\n\n    toString() {\n        return '[X=' + this.x + ', Y=' + this.y + ', color=' + this.color + ']'\n    }\n\n}\n```\n\n# Шаг № 10\n\nЗапуск приложения:\n\n```bash\n./node_modules/.bin/electron .\n```\n\n\u003ckbd\u003e![Скриншот](screenshot.png)\u003c/kbd\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusenov%2Felectron-seed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgusenov%2Felectron-seed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusenov%2Felectron-seed/lists"}