搭建vue3组件库(一):Monorepo架构搭建

embedded/2024/9/23 19:44:25/

文章目录

    • 1. 以 pnpm 构建 monorepo
      • 1.1 全局安装 pnpm
      • 1.2 配置 pnpm 的 monorepo 工作区
      • 1.3 仓库项目内的包相互调用
      • 1.4 TypeScript 初始化配置文件
    • 2. 通用配置文件
      • 2.1 添加 .editorconfig 编辑器格式配置文件
      • 2.2 添加 .gitignore git 忽略文件
      • 2.3 添加 .npmrc npm配置文件
      • 2.4 工作区配置
      • 2.5 添加 .gitattributes 配置git 使用的文件和路径的属性
    • 3. play 项目搭建
      • 3.1 使用 Vite 来创建项目
    • 4. TypeScript 的 Monorepo 设置
      • 4.1 TypeScript 项目引用
      • 4.2 TypeScript 的类型检查
      • 4.3 串行/并行执行脚本

1. 以 pnpm 构建 monorepo

monorepo 是一个项目仓库,里面可以存放多个项目,每个项目可以独立管理,并且可以共享依赖。
pnpm 全称 performant npm,意思为高性能的 npm。pnpm 由 npm/yarn 衍生而来,解决了 npm/yarn 内部潜在的 bug,极大的优化了性能,扩展了使用场景。

1.1 全局安装 pnpm

  npm install -g pnpm

然后在项目下使用 pnpm init 进行 package.json 的初始化,得到 package.json 初始内容,然后把 package.json 中的 name 属性删掉,并且添加一个 “private”: true 属性,因为它是不需要发布的。

为了减少因node的版本的差异而产生开发环境错误,在package.json中增加engines字段来限制版本

为项目指定使用指定版本的node.js,在package.json中增加peerDependencies字段来限制版本

  {"private": true,"scripts": {},"peerDependencies": {"vue": "^3.2.0"},"engines": {"node": ">=16"},}

1.2 配置 pnpm 的 monorepo 工作区

在这个仓库下,我们需要管理多个项目,就可以采用 pnpm 的 monorepo。在仓库的根目录下创建一个 pnpm-workspace.yaml 文件,可以在 pnpm-workspace.yaml 配置文件中指定这个仓库中有多少个项目。

packages:- packages/*- docs- play- internal/*

play 目录是示例项目,在开发的时候可以知道效果是否达到预期;

docs 目录是文档项目,展示组件的使用方法;

internal 目录是内部项目,存放一些私有组件,比如:打包方法、等;

packages 目录是所有组件的项目目录了,在 packages 目录中又可以放很多包的项目目录,比如,组件包目录:components、主题包目录:theme-chalk、工具包目录:utils 等。

然后每一个包目录里面也需要一个 package.json 文件进行声明这是一个 NPM 包目录。所以需要进入每个包目录进行初始一个 package.json 文件。

components 包为例,进入到 components 目录底下初始化一个 package.json 文件,更改包名:@vision-ui-vue/components。文件内容如下:

{"name": "@vision-ui-vue/components","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC"
}

其他两个的包名则分别为:@vision-ui-vue/theme-chalk@vision-ui-vue/utils,创建过程同上。

至此一个初步搭建的项目目录结构如下:

├── docs
├── packages
│   ├── components
│   │   └── package

http://www.ppmy.cn/embedded/17335.html

相关文章

torch.mm函数介绍

torch.mm() 是 PyTorch 中用于执行矩阵乘法(matrix multiplication)的函数。它能够将两个给定的张量进行矩阵乘法运算,得到结果张量。 这是 torch.mm() 函数的基本语法: torch.mm(input, mat2, *, outNone)input: 第一个输入张量…

07.JAVAEE之线程5

与面试相关 1.常见的锁策略 不是一把具体的锁,而是一类锁 1.1 乐观锁 vs 悲观锁 悲观乐观,是对后续锁冲突是否激烈(频繁)给出的预测 如果预测接下来锁冲突的概率不大,就可以少做一些工作. 就称为 乐观锁 如果预测接下来锁冲突的概率很大,就应该多做一些工作. …

一次违法网站的渗透经历

0x01 前言 在一次攻防演练中,我发现了一个有趣的渗透路径。在信息收集阶段,我注意到目标网站和用户资产网站共享相同的IP网段。这意味着它们可能在同一台服务器上托管,或者至少由同一家互联网服务提供商管理。这种情况为我们的渗透测试提供了…

李沐64_注意力机制——自学笔记

注意力机制 1.卷积、全连接和池化层都只考虑不随意线索 2.注意力机制则显示的考虑随意线索 (1)随意线索倍称之为查询(query) (2)每个输入是一个值value,和不随意线索key的对 (3)通过注意力池…

Snowflake Arctic: 企业人工智能的最佳LLMs——高效智能,真正开源

前沿&前言 在人工智能领域,模型的大小往往与性能成正比,而模型的开放程度则决定了其应用范围和影响力。今天,云计算巨头Snowflake携其AI研究团队,发布了一款名为Arctic的的开源企业级大型语言模型,该模型以128位专…

netstat 命令的 Local Address 参数

一天在K8S环境部署项目是,部署之后项目始终访问不了。检查了是否开放端口、ingress配置、内部是否能访问等。最后万没想到,端口只能本地访问。一般来说项目端口开放了都是0.0.0.0,惯性思维导致了没去检查。。正好来说说 netstat 吧。netstat …

Docker 中常用的命令

docker ps //查看当前运行容器 docker ps -n 4 只看最近创建的4个容器 进入当前正在运行的容器 #我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置#命令docker exec -it 容器id bashShell#实例#方式二docker attach 容器ID# docker exec …

【智能算法】蜉蝣算法(MA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年,K Zervoudakis等人受到自然界蜉蝣交配繁殖行为启发,提出了蜉蝣算法(Mayfly Algorithm, MA)。 2.算法原理 2.1算法思想 MA灵感来自蜉蝣交配…