当前位置: 首页 > 网络应用技术

PNPM + Workspace +更改组构建您的MonorePo项目

时间:2023-03-08 14:12:32 网络应用技术

  是什么?和谐之间有什么区别?

  关于这些问题,我已经在上一篇文章中介绍Lerna的文章中详细介绍了。有兴趣的学生可以再次审查。

  修改错误,调试等将更加方便。

  它是一种新一代的行李管理工具,被称为最先进的袋子管理器。根据官方网站的符合,它可以实现节省磁盘空间,提高安装速度并创建非Flat node_modules文件夹的两个目标。具体原则可以参考PNPM官方网站。

  提出的概念已经建立了 - 在支持中,为什么要使用上一个概念?

  在这里,我总结了以下原因:

  pmation版本的PNPM安装和使用的版本需要至少大于v14.19.0,因此您需要在安装之前检查节点版本。

  为了促进后续演示,首先在项目的根目录下创建一个新目录,然后在目录中创建和两个项目,输入两个目录,执行命令,初始化两个项目。这些字段称为HE(PS PS PS PS:@QFTJS是已提前在NPM上创建的组织。如果没有,则需要提前创建它)。

  为了防止root目录发布,需要设置项目目录中的配置文件字段。

  为了获得一个完整的示例,我在这里使用该模块进行包装,该包装基于包装层,该包装更方便使用。

  在PKG1和PKG2的SRC目录下创建文件:

  在PKG1和PKG2下添加并配置了新的和配置文件。

  全局安装:

  最后,在PKG1和PKG2下的文件中添加一个:

  通过这种方式,PKG1或PKG2下的执行命令将每个子包装的TS代码打包到目录中的JS代码输出中。

  为了启动该函数,在项目的根目录中需要配置文件,并且在中间指定了工作空间的目录。修改内容如下:

  初始化后的项目目录结构如下:

  安装依赖包的使用通常分为以下情况:

  提供-w,-workspace -root参数,可以作为所有软件包的公共依赖性安装到项目的根目录。

  例如:

  如果是开发依赖性,则可以添加参数,表明这是将在中国安装的开发依赖性,例如:

  提供 - 滤波器参数,可用于在特定软件包上执行某些操作。

  因此,例如,如果要为PKG1安装依赖的软件包,则可以执行以下操作:

  应该注意的是,参数遵循软件包下的字段,而不是目录名称。

  该操作实际上非常丰富,例如在PKG1下执行脚本脚本:

  除了指定特定的软件包名称外,您还可以遵循匹配规则来指定操作匹配规则的数据包,例如:

  此命令执行所有软件包下的所有命令。对于特定用法,您可以参考过滤器文档。

  最后一个是我们在开发过程中经常遇到的场景,例如PKG1作为PKG1中的依赖项。

  基于PNPM,可以很容易地在包装内引用。例如,PKG2在PKG1中引用:

  目前,我们查看PKG1,您可以看到该字段中还有更多正确的引用,从特定版本号开始。

  在设置依赖项时建议使用,以便可以维护的版本是工作空间中的最新版本。您无需每次手动更新依赖项。

  当它是相应版本中的校正时,将自动进行校正。

  在项目中使用时,如果您不想使用或安装依赖项,则可以将以下脚本添加到项目根目录:

  预启用脚本将在之前执行。现在,只要某人运行或只能致电以限制安装依赖性的使用。

  包装版本的管理是一个非常复杂的工作。不幸的是,它没有提供构建的解决方案。一些开源项目已经在自己的项目中实施了一套用于管理机制的行李,例如Vue3,Vite等。

  PNPM建议两个开源版本控制工具:

  在这里,我使用更改集来执行依赖软件包。选择该文档的主要原因是文档更清晰,并且我觉得启动更容易。

  根据更改集文档,更改集主要做了两件事:

  更改集拥有两个关键信息位:版本类型(以下SEMVER),然后更改以要添加到更改程序中的信息。

  简而言之,它是管理软件包的版本,并生成ChangElog。

  执行初始化命令后,将在项目的根目录中生成目录,该目录用作默认配置文件。

  修改配置文件如下:

  描述如下:

  一个袋子通常分为以下步骤:

  为了促进所有软件包的发布过程,在项目root目录中添加了以下脚本:以下脚本:

  应该注意的是,有三种类型的版本选择,即和谐,严格遵循SEMVER规范。

  这里还有一个细节。如果我不想直接发布该版本,我想发送第一个版本(例如beta或rc版本)?

  这里有两种方法:

  此方法是最简单和粗鲁的,但是犯错误更容易。

  首先,您需要修改软件包的版本编号:

  然后运行:

  请注意,发送参数时,您不应忘记添加参数。

  通用标签如下所示:

  Alpha是内部测试版本。通常,它不会释放到外部。有很多错误。通常,只有测试人员使用beta作为测试版本。此阶段的版本将始终添加新功能。在启动RcRelease候选者)系统平台之后,它是一个候选版本。RC版本将不再添加新功能,主要集中于删除错误的错误

  之后,在此模式下,默认情况下将采用环境。以下将在此模式下在任何模式下开发您的开发。示例如下:

  版本发布后,退出模式:

  代码提交规格对于团队或公司非常重要。制定良好的代码提交规格可以促进可追溯性并帮助审查此提交。它很难形成强制性约束,现在我们尝试限制代码以通过工具提交规格。

  该角色主要是生成标准化并符合规范。

  标准化的部分应包括三个部分:标头,车身和页脚。标题是必要的,可以选择身体和页脚。

  标题由三个字段组成:类型,范围(可选),受试者(必需)

  它用于解释该提交的影响的范围。根据该项目,例如在业务项目中,可以根据菜单或功能模块对其进行划分。如果由组件库开发,则可以根据组件进行分配。

  该主题包含更改的简洁描述:

  注意三点:

  它主要包括对主题的进一步描述。同样,应使用祈祷的语气,包括这种修改的动机,并将其与先前的行为进行比较。

  包括这次有关重大更改的信息,引用此提交的关闭的问题地址,如果代码的提交与缺陷的更改或封闭不兼容,则必须省略FOOS。

  指示:

  而且,如果您需要使用针对项目规格的指标指令,则还需要一个适配器。

  在项目根目录中添加一个脚本:

  接下来,您可以使用它而不是提交代码。看到下面的效果,这意味着安装已经成功。

  commitlint &&赫斯基我们前面提到的是,我们可以通过&&调节我们,但同时也存在一个问题。如果用户不传递代码,但直接通过命令提交代码,我们可以绕过检查。这就是我们不想见证的。

  因此,我们使用组合来限制我们的提交。使用挂钩在提交之前验证信息,以防止提交不遵守规范。

  安装和:

  在项目的根目录中添加配置文件,并指定的验证配置文件:

  沙哑的配置(Husky的每个版本配置都不同,您可以参考官方文档,当前的HUSKY为v8.0.1)。

  在package.json中添加脚本。项目root目录:

  执行执行以初始化沙哑后,将自动执行脚本。执行后,它将在根目录中创建一个目录。

  执行以下命令以添加新的沙哑钩子:

  当我们提交不符合GIT提交规格的代码时,将出现以下错误并自动退出提交过程。

  良好的代码写作规范在团队的可持续发展中起着至关重要的作用。因此,我将配置代码的统一规范验证,并且合作可以检查已提交的代码。

  首选需要安装。

  在根目录中添加配置文件:

  这是GIT中的概念,表明临时存储区域,表明仅检查临时区域中的文件。

  在package.json中添加以下配置:

  越来越多的验证:

  示例代码

  有关更多精彩文章,欢迎注意我的公共帐户:前端建筑师笔记