{"id":21018738,"url":"https://github.com/tal-tech/create-electron-app-template","last_synced_at":"2025-05-15T06:31:46.605Z","repository":{"id":109363758,"uuid":"311954190","full_name":"tal-tech/create-electron-app-template","owner":"tal-tech","description":"The basic template of create-electron-app.","archived":false,"fork":false,"pushed_at":"2020-11-11T11:52:25.000Z","size":287,"stargazers_count":5,"open_issues_count":2,"forks_count":3,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-03T05:12:06.565Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tal-tech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"2020-11-11T11:45:04.000Z","updated_at":"2021-08-07T09:37:08.000Z","dependencies_parsed_at":"2023-05-04T18:18:49.433Z","dependency_job_id":null,"html_url":"https://github.com/tal-tech/create-electron-app-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fcreate-electron-app-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fcreate-electron-app-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fcreate-electron-app-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fcreate-electron-app-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tal-tech","download_url":"https://codeload.github.com/tal-tech/create-electron-app-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254288262,"owners_count":22045868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-19T10:27:28.936Z","updated_at":"2025-05-15T06:31:46.599Z","avatar_url":"https://github.com/tal-tech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-electron-app-template\n\n一个基本的electron模板，旨在提供一个有完整的基础功能和工程化设置的electron项目\n\n如果你已经有了web项目，那么你只只需要替换一点点代码，就立马就可以拥有一个pc客户端了\n\n## 开发\n构建\n```\nyarn dev\n```\n启动\n```\nyarn start\n```\n\n若使用vscode也可以按F5启动debugger调试，支持断点；\n\n## 打包\n```\nyarn run pack\n```\n\n- 根据命令行提示输入相应更新信息\n- 打好的包默认在release目录下；\n\n## 替换renderer\n\n本项目中的renderer为create-react-app搭建的示例项目，开发者可自行删除并导入或搭建自己的项目；\n\n替换项目，最主要是保证构建输出的目录(`/renderer/build`)和原来一致，开发构建命令(`yarn start`)和生产构建命令(`yarn build`)一致；\n\n以新建一个angular项目替换为例：\n1. 删除现在的渲染进程目录；\n1. `ng new renderer`新建一个项目；\n2. 将[/app/browser-window/main-window.ts](/app/browser-window/main-window.ts)中的`DEV_PATH`改为`http://localhost:4200`，因为Angular和React的默认开发端口不一样；\n3. 修改[./renderer/angular.json](./renderer/angular.json)中的`outputPath`为`build`，构建后的文件同样输出到build目录；\n4. 修改[./renderer/package.json](./renderer/package.json)中`scripts.build`为`ng build --base-href=./ --deploy-url=./`，因为在打包后是使用file协议加载；\n   \n\u003e 如果不想用file协议，需要使用http协议，也可以通过启动本地服务的方式解决；\n\u003e\n\u003e 不想每次都将静态资源打入包内，而是启动应用时就更新，也有方法可做。我们预计会在两周内推出教程；\n\n## 打包流程解析\n\n具体实现参见[./build/pack.ts](./build/pack.ts)\n\n1. 获取打包配置，如果是CI环境直接读取启动参数，否则弹出命令行交互选项输入配置参数；\n2. 使用`npm version a.b.c`更新版本号；\n3. 根据打包配置文件更新[./electron-builder.json](./electron-builder.json)，这个文件是`electron-builder`进行打包时会读取的配置项；\n4. 更新[./CHANGELOG.md](./CHANGELOG.md)；\n5. 构建主进程和preload的代码，输出到`/output/main`下；\n6. 构建渲染进程的代码，输出到`/renderer/build`下，然后复制到`/output/renderer`目录；\n7. 使用`electron-builder`开始打包，打好的包在`/release`目录；\n\n## 自动更新配置\n\n修改[./build/pack-config.ts](./build/pack-config.ts)中的`publish.url`，每次将打好的包上传到对应的服务器地址即可；\n\n- 也可参考[electron-builder文档](https://www.electron.build/auto-update)中的其他服务器配置选项；\n\n## 项目目录结构\n```\n.\n├── app                           // 主进程代码\n├── build                         // 构建脚本和配置\n├── output                        // 构建输出目录\n├── release                       // 打包输出目录\n├── renderer                      // 渲染进程代码\n├── resources                     // 资源文件\n├── CHANGELOG.md                  // 更新日志\n├── README.md                     \n├── commitlint.config.js          // 提交规范配置\n├── config.json                   // 项目基础配置\n├── electron-builder.json         // 生成的打包配置，不需要修改\n├── package-lock.json\n├── package.json\n├── tsconfig.json\n└── yarn.lock\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fcreate-electron-app-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftal-tech%2Fcreate-electron-app-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fcreate-electron-app-template/lists"}