首页 > 其他分享 >使用 PNPM 从 0 搭建 monorepo,测试并发布

使用 PNPM 从 0 搭建 monorepo,测试并发布

时间:2024-06-12 21:58:26浏览次数:24  
标签:package -- apps 文件夹 components PNPM packages monorepo 搭建

1 目标

通过 PNPM 创建一个 monorepo(多个项目在一个代码仓库)项目,形成一个通用的仓库模板。

这个仓库既可以用于公司存放和管理所有的项目,也可以用于将个人班余的所有积累整合其中。

2 环境要求

核心是 PNPM 和 Node.js,没有特殊的版本要求,只要他俩能对应上即可。
在这里插入图片描述
除了以上两个,项目中也使用到以下工具或插件,都是按需添加,如不使用则不用考虑其环境要求。
Storybook:
Changeset:

3 仓库搭建

3.1 新建项目

新建一个文件夹作为项目容器。

这里起名叫 ease-life,意为轻松生活,所有的学习、工作都是为了更好地、更轻松的生活。

3.2 创建目录

在项目根目录下创建 apps、packages 文件夹。

  • 在 apps 下创建 storybook 文件夹。用于测试 web components。
  • 在 packages 下分别创建 config(配置信息)、web-components(实现组件与框架无关) 文件夹。
    • 在 config 文件下创建 eslint、stylelint、commitlint 以及 typescript,用于存放对应的配置
    • 在 web-components 创建

apps 文件夹主要存放应用程序,如:Storybook、VitePress,还可以加上 vue-test、react-test 来对 web components 做测试。
packages 底下主要包含插件、组件、命令行、类库等,除了以上的内容还可以按需加上 vue-components、react-components、cli、map-library 等等。

3.3 添加文件

在项目根目录下添加文件:pnpm-workspace.yaml,定义 PNPM 的工作空间:

packages:
  # 匹配 packages 目录下(任意文件夹下)的所有模块
  - 'packages/**'
  # 匹配 apps 直接子文件夹下的所有模块
  - 'apps/*'

这里的模块,说的就是包含 package.json,可以被发布到 NPM 远程仓库的项目

ease-life
|-- apps
|   |-- storybook
|   └── ...     
|-- packages
    |-- cli
    |   └──  package.json
    |-- code-quality
    |   |-- eslint-config
    |   |-- stylelint-config
    |   └── typescript-config
    |-- map-library
    |   └── package.json
    |-- vue-components
    |   |-- emap
    |   |   └── package.json
    |   |-- utils
    |       └── package.json
    └── web-components
|-- .npmrc
|-- package.json
|-- pnpm-lock.yaml
└── pnpm-workspace.yaml

未完持续~

标签:package,--,apps,文件夹,components,PNPM,packages,monorepo,搭建
From: https://blog.csdn.net/zapzqc/article/details/139619972

相关文章

  • 基于imx6ull_pro中qtcreator环境搭建
    目录(一)说明(二)qt_creator安装(三)qt_creator配置与环境搭建(四)qt_creator所遇问题(一)说明1使用版本Descriptionubuntu18.04.2LTSRelease......
  • 基于phpstudy的Pikachu靶场搭建(有手就会)
    目录一、phpstudy和pikachu源码下载地址二、phpstudy创建网站,网站根目录设置为pikachu的源码文件夹1、将pikachu_master(pikachu源码文件夹)放到phpstudy的WWW目录下2、打开phpstudy,创建pikachu靶场网站三、配置pikachu靶场四、用phpstudy的mysql连接pikachu靶场的数据库......
  • 网站搭建:网站域名介绍
    域名是网站唯一的名称。主机解决方案中应包括域名注册。域名应该容易记、容易写。什么是域名?域名是网站的唯一名称,比如csdn.net域名是需要注册的。当域名被注册后,就会被添加到大的域名注册商那里,连同与您的网站有关的信息-包括被保存在DNS服务器的IP信息。DNS指......
  • 网站搭建:网站主机提供商
    如果您希望让全世界的人都看到您的网站,就必须把它存储在一个web服务器。使用自己的主机在自己的服务器上存放网站始终都是一个选项。不过有些问题是需要考虑的:硬件的费用要运行一个"真正"的网站,你必须购买一些高性能的服务器硬件。不要指望低价的PC可以做这些工作。同......
  • Day26.管理员功能框架搭建
    1.管理员功能框架搭建 管理员功能框架搭建,src.py中的代码:#10.管理员功能@common.login_authdefadmin():fromATM.coreimportadminadmin.admim_run() 管理员功能框架搭建,admin.py中的代码:fromATM.coreimportsrc#添加账户defadd_user():......
  • 如何搭建一台永久运行的个人服务器
    搭建一台永久运行的个人服务器是一个涉及多个步骤和考虑因素的过程。以下是一个详细的指南,旨在帮助你搭建一台稳定、安全、且能够永久运行的个人服务器。一、硬件选择与准备选择硬件设备:根据个人需求和预算,选择一台稳定可靠的服务器主机。推荐选择拥有Intel或AMD多核处理......
  • 最新AI系统+ChatGPT网站H5源码+AI绘画系统,DALL-E3文生图,详细图文搭建教程/文档分析/识
    目录一、文章前言系统文档 二、系统演示三、系统功能模块3.1AI全模型支持/插件系统AI模型提问文档分析​识图理解能力3.2GPts应用3.2.1GPTs应用3.2.2GPTs工作台3.2.3自定义创建预设应用3.3AI专业绘画3.3.1文生图/图生图(垫图)3.3.2 局部编辑重绘3.3.3 ......
  • springboot3项目的搭建四.3(security登录认证配置)
    security的jwt验证:总体来说,我们加入依赖项,security就已经开始生效了,但是使用的默认的UserDetails和UserDetailsService,一、我们只要继承UserDetailsService,在数据库中查询用户和权限列表,封装成UserDetails的实现类,返回就可以实现,security验证的接管,最多在security配置类中,放行......
  • 群辉Nas搭建操作案例
    很多时候,nas硬盘坏了,我们更换了新的硬盘以后,如何让nas来继续恢复它原来的工作呢?现在所有的数据都已经完美的抢救回来了恢复好了,客户希望这台nas能恢复正常工作,采购了四块全新的硬盘,我们现在的做法就是要把这个四块盘重新放到nas里面,重新安装系统,重新配置raid5,把系统架构好后再把......
  • 微信小游戏开发流程及上架步骤:微信小游戏定制开发源码搭建
    微信小游戏开发方案主要包括以下几个方面:    1.游戏设计:根据需求和目标用户群体,设计游戏玩法、关卡、角色、场景等元素,确保游戏具有吸引力和可玩性。    2.技术实现:根据游戏设计,选择合适的技术栈和开发工具,进行游戏代码编写、测试、优化等工作。    ......