npm 包 @erquhart/lerna-package 使用教程

阅读时长 4 分钟读完

简介

@erquhart/lerna-package 是一个基于 lerna 的 npm 包,用于管理 monorepo 的 packages。

安装

你可以使用 npm 或 yarn 进行安装:

使用

初始化

在 monorepo 的根目录下运行以下命令来初始化 lerna:

添加一个 package:

配置

在 monorepo 的根目录下创建 lerna.json 文件作为 lerna 的配置文件,其中应包含以下内容:

其中 "packages/*" 是 package 存放的目录,"version": "independent" 表示每个 package 的版本可以单独管理,"npmClient": "npm" 表示使用 npm 作为 npmClient,"useWorkspaces": true 表示使用 yarn workspaces 或者 npm workspaces,方便 monorepo 管理。

package.json 配置

在 package.json 中添加以下内容:

-- -------------------- ---- -------
-
  ------- -----------------------
  ---------- --------
  ---------- -
    -------- ---- --- -----------
    ------------ ---- -- ---------------------
  --
  ------------------- -
    -------- ----------
    ------------ ---------
  -
-

其中 "name": "@my-scope/my-package" 是 package 的名称,"version": "0.0.1" 是 package 的初始版本号,"scripts" 中的 buildbuild:lib 都是为了打包输出 js 文件的命令,这里以 tsc(TypeScript 编译器)举例,而 "peerDependencies" 是声明该 package 需要的 peerDependencies。

发布

在 monorepo 的根目录下运行以下命令来发布 packages:

示例代码

一个简单的示例代码,假设 monorepo 的根目录为 /my-monorepo,package 存放的目录为 /my-monorepo/packages/my-package,src 目录下有个 index.tsx

打包后输出 lib 目录下的 index.js

-- -------------------- ---- -------
---- --------

------------------------------ ------------- - ------ ---- ---

--- ----- - -----------------

--- ----------- - -------- -- -
  ------ -------------------------- ----- ------- ----------
--

------------------- - ------------
--- -----------------------------

这样就可以将 package 发布到 npm 了,其他包括该 package 的工程需要通过 npm install @my-scope/my-package 来进行安装和引入。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedaf48b5cbfe1ea0610fce

纠错
反馈