Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: correct spelling of "Monorepo" in documentation and some md syntax #14

Merged
merged 2 commits into from
Feb 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/6/6.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
## 初始化

```tsx
$ git clone --depth 1 [email protected]:npmstudy/your-node-v20-menoreopo-project.git my-menorepo
Cloning into 'my-menorepo'...
$ git clone --depth 1 [email protected]:npmstudy/your-node-v20-monorepo-project.git my-monorepo
Cloning into 'my-monorepo'...
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (41/41), done.
Expand All @@ -19,7 +19,7 @@ Resolving deltas: 100% (2/2), done.
```tsx
$ rm -rf .git/
$ git init
Initialized empty Git repository in /Users/alfred/workspace/npmstudy/my-menorepo/.git/
Initialized empty Git repository in /Users/alfred/workspace/npmstudy/my-monorepo/.git/
$ git status
On branch main

Expand Down Expand Up @@ -108,12 +108,12 @@ pnpm是一种包管理工具,类似于npm和Yarn。它的主要特点是使用

pnpm的一些优点包括:

1. 磁盘空间占用更小:由于使用硬链接和符号链接来共享依赖项,pnpm可以显著减少每个项目的磁盘空间占用。这对于Menorepo和多个项目共享相同依赖项的情况特别有用
1. 磁盘空间占用更小:由于使用硬链接和符号链接来共享依赖项,pnpm可以显著减少每个项目的磁盘空间占用。这对于Monorepo和多个项目共享相同依赖项的情况特别有用
2. 安装速度更快:由于共享依赖项,pnpm可以在安装过程中跳过重复的依赖项。这可以显著减少安装时间,特别是在多个项目之间共享相同依赖项的情况下。
3. 更少的网络流量:由于共享依赖项,pnpm只需要下载一次每个依赖项,而不是每个项目都下载一次。这可以减少网络流量的消耗,特别是在多个项目之间共享相同依赖项的情况下。
4. 兼容性:pnpm与npm和Yarn的生态系统兼容,并且可以使用它们的配置文件和命令。这使得迁移到pnpm相对容易,而不需要对项目进行大量的更改。

pnpm是一个快速、高效且节省空间的包管理工具,适用于大型项目和Menorepo
pnpm是一个快速、高效且节省空间的包管理工具,适用于大型项目和Monorepo

安装pnpm

Expand Down Expand Up @@ -304,7 +304,7 @@ app.listen(3000);
```tsx
$ pnpm example

> your-node-v20-menoreopo-project@ example /Users/alfred/workspace/npmstudy/my-menorepo
> your-node-v20-monorepo-project@ example /Users/alfred/workspace/npmstudy/my-monorepo
> npm run build && pnpm -F example dev

> build
Expand All @@ -319,7 +319,7 @@ $ pnpm example

Nx read the output from the cache instead of running the command for 2 out of 2 tasks.

> [email protected] dev /Users/alfred/workspace/npmstudy/my-menorepo/example
> [email protected] dev /Users/alfred/workspace/npmstudy/my-monorepo/example
> tsx watch src/app.ts
```

Expand Down
12 changes: 6 additions & 6 deletions src/6/6.2.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 开源最佳实践

在 <https://github.com/npmstudy/your-node-v20-menoreopo-project> 里,我们用到的技术栈如下。
在 <https://github.com/npmstudy/your-node-v20-monorepo-project> 里,我们用到的技术栈如下。

```markdown
- [Tsup](https://tsup.egoist.dev/) as a TypeScript universal package.
Expand All @@ -27,7 +27,7 @@
3. tsd
4. tsdoc

模块安装和menorepo
模块安装和monorepo

1. pnpm

Expand Down Expand Up @@ -97,7 +97,7 @@ packages:

```

剩下的就是运行时处理。之前nx run-many解决了menorepo子模块运行的问题。很多时候我们需要在根目录执行某个项目 的构建脚本,需要通过—filter或-F过滤之后,再执行,示例如下。
剩下的就是运行时处理。之前nx run-many解决了monorepo子模块运行的问题。很多时候我们需要在根目录执行某个项目 的构建脚本,需要通过—filter或-F过滤之后,再执行,示例如下。

```tsx
$ pnpm -F example dev
Expand Down Expand Up @@ -328,7 +328,7 @@ limit-size 是一个用于控制文件包大小的工具,它可以读取文件

</aside>

在使用Menorepo时,你一定听说过 Nx。简而言之,Nx 可以加快和简化与Menorepo的工作,并提供有用的实用程序。
在使用Monorepo时,你一定听说过 Nx。简而言之,Nx 可以加快和简化与Monorepo的工作,并提供有用的实用程序。

官方介绍:

Expand Down Expand Up @@ -367,7 +367,7 @@ nx 会计算当前执行的 target 的 Hash 作为 cache key,在 target 执行
```tsx
$ pnpm project-graph

> your-node-v20-menoreopo-project@ project-graph /Users/alfred/workspace/npmstudy/your-node-v20-menoreopo-project
> your-node-v20-monorepo-project@ project-graph /Users/alfred/workspace/npmstudy/your-node-v20-monorepo-project
> nx graph

> NX Project graph started at http://127.0.0.1:4211/projects
Expand All @@ -379,7 +379,7 @@ nx除了本地换成,其实还支持云服务(remote cache)。即nx.app,

![Untitled](img/Untitled%2015.png)

在<https://github.com/npmstudy/your-node-v20-menoreopo-project> 项目里,我们其实只用了非常简单的npm nx run-many
在<https://github.com/npmstudy/your-node-v20-monorepo-project> 项目里,我们其实只用了非常简单的npm nx run-many

```tsx
"build": "nx run-many -t build",
Expand Down
6 changes: 3 additions & 3 deletions src/6/6.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# 6、Menorepo多模块开发实践
# 6、Monorepo多模块开发实践

前面5节课里,我们已经把一个Node.js + TS的完整项目开发过程讲完了,虽然主要以Hello world为主,相信对初学者学习来说足够。本章主要讲解nodejs + ts 在多模块开发场景下的用法,以及最佳实践,希望本章能够做到既实用,又能开眼界。

Menorepo是一种软件开发的方法论,它指的是将一个大型项目拆分成多个小型仓库进行管理的做法。每个小型仓库都专注于特定的功能或模块,可以独立开发、测试和部署。通过使用Menorepo,开发团队可以更好地协作、提高开发效率,并且更容易实现代码复用和模块化。
Monorepo是一种软件开发的方法论,它指的是将一个大型项目拆分成多个小型仓库进行管理的做法。每个小型仓库都专注于特定的功能或模块,可以独立开发、测试和部署。通过使用Monorepo,开发团队可以更好地协作、提高开发效率,并且更容易实现代码复用和模块化。

工程领域的解决方案有很多,比如Lerna、yarn workspaces、nx、rush、bolt、pnpm workspace,甚至还有lerna-lite,足见其流行程度之火爆。更有甚至,把前端应用和Node.js应用放到一起,混着packages去用,真是不知道闹多大笑话,不要为了用而用。

我理解Menorepo的典型场景如下
我理解Monorepo的典型场景如下

- 前端应用+组件
- Node.js应+中间件、父子应用
Expand Down
2 changes: 1 addition & 1 deletion src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
- [常用测试技巧进阶](./5/5.2.md)
- [学会CI/CD](./5/5.3.md)
- [本章小结](./5/5.4.md)
- [Menorepo多模块开发实践](./6/6.md)
- [Monorepo多模块开发实践](./6/6.md)
- [开发你的第一个模块](./6/6.1.md)
- [开源最佳实践](./6/6.2.md)
- [如何学习](./6/6.3.md)
Expand Down