---
# System prepended metadata

title: MiniGameRepository

---

# MiniGameRepository

## Monorepo

### 差異
![](https://i.imgur.com/RRaRTmq.png)
- Monolith
- Multi-repo
- Monorepo


### 優點
- 共用配置(tsconfig/prettier/lint/env)
- 佈署快速(node_module共用/平行佈署)
- 快速知道鄰居的異動，co-work容易
- 程式共用量增加

### 缺點
- codebase巨大
- [git效能緩慢](https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/)
- 權限管理

### Tips
- 不是每個大型專案適用
- 前後端有時可以整合
- 選擇性佈署 / 同時全部佈署

### 佈署
在monorepo中，通常有幾種方法來選擇性地佈署某個應用程序：

打tag：如前所述，您可以在monorepo中的某個應用程序上打一個tag，並在 .gitlab-ci.yml 文件中檢查該tag，以決定是否要佈署該應用程序。

分支：您可以將每個應用程序放在一個獨立的分支中，並對每個分支定義獨立的CI / CD流程。當要佈署特定應用程序時，您只需要推送代碼到該應用程序的分支即可。

檔案：您可以在monorepo中定義一個檔案，其中包含要佈署的應用程序的列表，並在 .gitlab-ci.yml 文件中檢查該檔案，以決定是否要佈署特定應用程序。

在更新了全部應用程序共用的libs時，您可以根據需要選擇性地佈署所有應用程序，或者選擇只佈署特定的一些應用程序。這將取決於您的CI / CD流程是如何定義的，以及您希望在更新時如何進行佈署。
(feat OpenAI)

### 工具
- [NX](https://nx.dev/)
- [TurboRepo](https://turbo.build/)

### NX
- 工作區管理：管理多個模組，並可以確保每個模組之間的相互依賴關係。
- 建置和測試：統一的工具鏈，可以自動地建置和測試您的應用程式。(ex: (nx test [projectName] --coverage))
- 適用性檢查：通過檢查code依賴關係，確保應用程式在不同環境中仍然有效。(nx dep-graph)

協作：NX.dev支援多人協作，可以確保多人在同一個項目中工作時不會相互干擾。

### NX start
npx create-nx-workspace@latest // helloworld
npx nx serve helloworld
npx nx g @nrwl/react:library cart
npx nx graph



### Example
ReactNative+Next.js
https://solito.dev/
https://github.com/nandorojo/solito/tree/master/example-monorepos/blank

ReactModuleFederation
https://github.com/nrwl/react-module-federation


---
## 其它

### Solid.js
- [官網](https://www.solidjs.com/)
- [Banchmark](https://krausest.github.io/js-framework-benchmark/current.html)

### Next.js
- [官網](https://nextjs.org/)

### CSS (Tailwind)
- [官網](https://tailwindcss.com/docs/installation)

### 測試工具
- [Cypress](https://www.cypress.io/)

### Flutter
- [Flutter](https://flutter.dev/)
- [狀態管理GetX](https://pub.dev/packages/get)