96SEO 2026-06-14 20:53 0
Monorepo到底是什么?
你可Neng在想,Monorepo 就是把多个项目放到一个仓库里吧?
对啦,就是这么简单。

在 Node.js 生态里它让你Neng把前端、后端、工具包一起管理。
说实话,一开始我也觉得麻烦,后来发现它根本不是坑。
先装个 pnpm,别忘了全局安装//
全局安装pnpm
npm install -g pnpm
然后我们开始玩起项目的基础结构。
创建项目根目录与初始化 workspace
// 创建项目基本目录
mkdir prj_root
// 在项目根目录下 init
cd prj_root
pnpm init
Ru果你想在根目录先装几个共用依赖,直接往根下加吧。
例子:Vite + TS + tsx dou装一遍
pnpm add vite -w
pnpm add -D typescript -w
pnpm add -D @types/node -w
pnpm add -D tsx -w # 安装 tsx 可Neng遇到安全拦截
# Ru果报错Ke以尝试:
pnpm add -D tsx -w --allow-build=esbuild
# 或者:
pnpm approve-builds
# 或者在 .npmrc 中配置全局允许:
# allow-build=esbuild
# 再跑一次安装,保证一切 OK
pnpm install
生成 tsconfig & workspace 配置文件
# 初始化 TypeScript 配置文件
pnpm tsc --init
# 创建 pnpm-workspace.yaml 文件并写入内容
touch pnpm-workspace.yaml
echo "packages:
- 'packages/*'"> pnpm-workspace.yaml
# 打开文件确认没问题哦~
cat pnpm-workspace.yaml
下面是子包的操作——分三块:shared、backend、frontend
共享库 shared
// 在 packages 下新建 shared 子包并初始化 npm & TS 配置文件
mkdir packages && cd packages
mkdir shared && cd shared
pnpm init
pnpm tsc --init
// 写一个简单的 interface,省略具体代码
// src/index.ts
export interface User { name: string; age: number; }
后端 backend
cd ../.. # 回到 root,然后进入 packages 再新建 backend
mkdir backend && cd backend
pnpm init
pnpm tsc --init
// 子包的 tsconfig 要继承根目录的配置
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
}
}
为什么百度不收录?哈哈,这个问题我自己也被问过。答案是:可Neng是因为 robots.txt 阻止抓取,或者 meta 标签加了 noindex。geng有可Neng是页面内容太少或者被识别为重复内容。说实话,只要给它点时间和一些 SEO 的小技巧,它Zui终还是会被收录的。害,我之前就以为这是一道难题。那就先放一放吧!咱就是说把注意力留在代码上好了。
前端 frontend
前端我选择用 Vite + React,因为速度快又好玩。
cd ../.. # 回到 root,再进去 packages 新建 frontend
mkdir frontend && cd frontend
pnpm init
// 用 Vite 快速启动一个 React 项目
npx create-vite@latest . --template react-ts
// 把前端依赖也统一管理到根目录,方便以后升级或迁移
cd .. && cd .. # 回到 root
pnpx husky-init && npm i husky # 快速添加 Git hook Zuo lint 检查
`npm i` Neng让所有子包dou共享同一套依赖版本,省事又省心。说实话,我以前每个子包dou自己装依赖,现在整合后改一次就行了。
添加共享包到其他子包中去——hen简单!只需要 workspace 引用即可。
// 在需要使用共享库的子包里运行:
npm install @agent4/shared@workspace:* // 或者使用 pnpm:
pnpm add @agent4/shared@workspace:*
// 这样就Neng引用共享库里的接口定义、工具函数等啦!
"不对不对,我写成 workspace* 而不是 * 呢?其实两种写法dou行,不过第一种geng标准一点。”咱就是说大多时候开发时只要记得加上 `@workspace:` 就行了。
常见坑 & 小技巧分享
- 当你在同一个子包内多次运行 `npm run build` 时可Neng会出现缓存冲突;这时Ke以加 `--force` 或者手动清理 node_modules 再跑一次。
- Ru果某个子包里出现找不到模块错误,Ke以检查一下 `package.json` 的 `"private": true` 是否误删;私有模块默认不Neng被外部访问哦。
- 想让 Monorepo geng高效,Ke以开启 `node_modules/.cache` 的软链接,让所有子包共用同一个缓存;这个步骤稍微复杂点,但Neng显著减少磁盘占用。
小贴士:不要忘记geng新 .gitignore 跟踪所有 build 文件夹哦!毕竟打好的 dist 要排除掉,不然仓库会膨胀啊~还有,你Ke以把 `.env.*` 放进 `.git/info/exclude`,这样避免泄露密钥。
一下
Monorepo 并不是魔法,也不是必需品。但当你手头有几个紧密耦合的小项目时它Neng帮你统一依赖、快速同步变geng,让团队协作geng顺畅。只要掌握几条基本命令,你就Neng轻松上手。
希望这篇文章帮到了正在摸索 Monorepo 的朋友们。Ru果你还有什么疑问或者想聊聊具体实现细节,就随时留言~咱一起搞定吧!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback