深白 發表於 2025-6-23 18:25:00

1.新建pnpm+monorepo架构项目

<h4>&nbsp;</h4>
<h4>一、前期准备:</h4>
<p style="margin-left: 30px">1. 准备node环境(推荐nvm方式管理node版本);</p>
<p style="margin-left: 30px">2.安装pnpm(pnpm 通过创新存储模型解决了 npm/yarn 的磁盘冗余、依赖污染等核心痛点,尤其适合 ‌Monorepo 项目、低存储环境及高稳定性要求的场景‌<span><span><span class="cos-tooltip cosd-citation"><span class="cosd-citation-citationId "><span><span class="cos-tooltip cosd-citation"><span class="cosd-citation-citationId ">。若项目无特殊兼容需求,pnpm 是当前最优解。</span></span></span></span></span></span></span>);</p>
<div class="cnblogs_code">
<pre>npm i pnpm -g</pre>
</div>
<h4>二、创建项目:</h4>
<p>  1.使用pnpm初始化项目:</p>
<div class="cnblogs_code">
<pre>pnpm init</pre>
</div>
<p>  2.创建pnpm-workspace.yaml文件</p>
<p>    该文件用于在 Monorepo 项目中统一管理多个子包间的依赖关系和构建流程。是<span style="color: rgba(255, 0, 0, 1)">pnpm 工作区(Workspace)核心配置文件</span></p>
<ul>
<li style="list-style-type: none">
<ul>
<li><span style="color: rgba(0, 0, 0, 1)">创建方式:</span></li>
</ul>
</li>
</ul>
<p><span style="color: rgba(0, 0, 0, 1)">      1.手动创建</span></p>
<ul>
<li style="list-style-type: none">
<ul>
<li><span style="color: rgba(0, 0, 0, 1)">作用:</span></li>
</ul>
</li>
</ul>
<p><span style="color: rgba(0, 0, 0, 1)">      1.</span>定义工作区范围</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">packages:
</span>- "packages/**"<span style="color: rgba(0, 0, 0, 1)">   # 递归匹配所有嵌套子包
</span>- "apps/*"<span style="color: rgba(0, 0, 0, 1)">          # 匹配 apps 一级目录下的子包
</span>- "demo"            # 单独指定 demo 目录</pre>
</div>
<p>      子包需要满足:</p>
<ul>
<li style="list-style-type: none">
<ul>
<li style="list-style-type: none">
<ul>
<li>包含独立的&nbsp;<code>package.json</code>&nbsp;且声明&nbsp;<code>name</code>&nbsp;字段</li>
<li>目录路径匹配配置文件中的规则</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>      2.‌实现跨包依赖共享</p>
<p>      3.统一依赖管理:根目录运行&nbsp;<code>pnpm install</code>&nbsp;可一次性安装所有子包依赖,并自动处理内部链接</p>
<p>&nbsp;</p>
<p>项目地址:https://gitee.com/cheng_zhen_guo/blog_demo_monorepo/tree/master</p>
<div><span style="margin: 0; padding: 0; -webkit-font-smoothing: antialiased; scrollbar-color: rgba(184, 186, 193, 0.6) transparent; scrollbar-width: thin; color: rgba(51, 51, 51, 1); font-family: &quot;PingFang SC&quot;, Arial, sans-serif; font-size: 16px">&nbsp;</span></div><br><br>
来源:https://www.cnblogs.com/chenghuayike/p/18930392
頁: [1]
查看完整版本: 1.新建pnpm+monorepo架构项目