{"id":21069083,"url":"https://github.com/styx11/3d-model-player","last_synced_at":"2026-03-17T09:35:57.392Z","repository":{"id":220086446,"uuid":"337605088","full_name":"Styx11/3d-model-player","owner":"Styx11","description":"cross-platform 3d model player based on electron and vue3","archived":false,"fork":false,"pushed_at":"2021-05-26T02:48:42.000Z","size":1718,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T21:40:41.603Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","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/Styx11.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}},"created_at":"2021-02-10T03:24:34.000Z","updated_at":"2024-01-31T06:18:15.000Z","dependencies_parsed_at":"2024-01-31T08:42:33.447Z","dependency_job_id":null,"html_url":"https://github.com/Styx11/3d-model-player","commit_stats":null,"previous_names":["styx11/3d-model-player"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Styx11%2F3d-model-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Styx11%2F3d-model-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Styx11%2F3d-model-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Styx11%2F3d-model-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Styx11","download_url":"https://codeload.github.com/Styx11/3d-model-player/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243510134,"owners_count":20302311,"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-19T18:31:42.736Z","updated_at":"2025-12-28T10:12:04.973Z","avatar_url":"https://github.com/Styx11.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3d-model-player\n\u003e cross-platform 3d model player based on electron and vue3\n\n## 技术栈选型\n* Vue, Vue-Router, Vuex\n* Ant-Design-Vue\n* TypeScript\n* Electron\n* Cesium\n* Less\n\n## 文件结构\n```sh\n.\n├── LICENSE\n├── README.md\n├── bld                    # 主进程代码编译文件\n├── dist                   # 渲染进程编译文件（从 views/dist 复制过来的）\n├── electron-builder.yml   # 用于 electron-builder 打包（packing）的配置文件\n├── package.json\n├── release-builds         # electron-builder 打包应用后的资源存放路径\n├── scripts\n│   └── build.js           # 应用打包预处理脚本（包括主/渲染进程代码的编译）\n├── src                    # 主进程代码存放路径\n├── tsconfig.json\n├── views                  # 渲染进程代码存放路径\n│   ├── README.md\n│   ├── babel.config.js\n│   ├── config             # webpack 配置\n│   ├── dist\n│   ├── env                # 环境文件\n│   ├── package.json\n│   ├── public\n│   ├── scripts\n│   ├── src                # 渲染进程代码\n│   ├── test               # Jest 测试相关\n│   ├── tsconfig.json\n│   └── yarn.lock\n└── yarn.lock\n```\n## Build\n因为一个 Electron 应用分为**主进程**和**渲染进程**两部分，所以项目的开发模式和应用的打包也需要两部分的配置\n\n### before script\n运行以下脚本构建项目环境\n```sh\n# 主进程\nyarn\n\n# 渲染进程\ncd views \u0026\u0026 yarn\n```\n### 开发模式\n1. 首先，我们需要先在一个 shell 进程中使用 webpack 运行渲染进程的开发模式\n```sh\nyarn dev:view\n```\n2. 接着我们才可以开启另一个 shell 进程运行主进程的开发模式，这会开启一个 electron 应用并加载渲染进程的内容。开发模式中主进程将处于 electron-reload 的监听下，当根目录下文件发生变动时，这个应用将会刷新。注意，electron-reload 只会刷新应用的`webContents`，其他涉及到初始化的代码仍需我们重启应用。\n```sh\nyarn dev\n```\n### 生产环境构建\n根据不同的系统我们可以运行不同的打包（packing）脚本，electron-builder 会将所有打包后的应用资源存放在`/release-builds`文件夹下，你可以在那里找到应用的安装包\n```sh\n# macOS\nbuild:mac\n\n# windows\nbuild:win\n```\n#### 发生了什么？\n生产环境应用的构建本质上分为这么几个部分：\n1. 首先执行以下代码运行预构建脚本，这个脚本会清理旧文件，然后分别执行主进程和渲染进程的编译脚本创建它们的生产环境代码，并将它们移动到 electron-builder 需要它们在的位置。\n```sh\nnode ./scripts/build.js\n```\n2. 之后执行 electron-builder 的打包命令并提供它所需要的配置文件，该文件涉及到应用打包的详细信息\n```sh\n# macOS\nelectron-builder --mac --config electron-builder.yml\n\n# windows\nelectron-builder --x64 --win --config electron-builder.yml\n```\n3. 最后我们可以在`/release-builds`文件夹下找到所需的应用资源\n## LICENSE\nMIT.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstyx11%2F3d-model-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstyx11%2F3d-model-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstyx11%2F3d-model-player/lists"}