Skip to content

贡献指南

plugin-light 采用 pnpm monorepo 模式,灵感来自于 Vue3 和 Vite 项目。

开发前需对 pnpm 常用命令有基本了解。

打包

project-config-vite 为例:

bash
pnpm --filter=@plugin-light/project-config-vite build

升级依赖

bash
# 在某个包中升级 一些依赖
pnpm --filter=@plugin-light/project-config-vite up "@plugin-light/*"

# 在所有包中只升级 某个依赖
pnpm --filter="./packages/*" up "@plugin-light/shared-vue2"

# 除了某个包外,其他包升级依赖
pnpm --filter="\!./packages/plugin-light-shared" up "@plugin-light/shared"

文档

根据jsdoc生成文档:

bash
npm run docs:gen

文档开发:

bash
npm run docs:dev

文档打包:

bash
npm run docs:build

文档部署:

bash
npm run docs:deploy

monorepo

shared

shared 为 Vue2 和 Vue3 公用的。

shared-vue2 为 Vue2 独有的,可能会用到 loader-utilsvue-template-compiler 等库。

这样拆离是为了防止依赖版本冲突。

依赖关系

loaderplugin 之间不能互相依赖,project-config 之间也是。如果有公用部分,请抽离到 shared 中。

sharedloaderpluginproject-config 依赖关系如下:

loader 导出

每个 loader 有 3 个产物,外部可以使用。

  1. index.js
  2. loader.js
  3. loader.prod.js

index.js 是具名导出,包含 LOADERLOADER_PROD 两个变量,分别对应 loader.jsloader.prod.js 的文件路径,并导出 loadertypes

loader.jsloader.prod.js 分别是 loader 的非压缩版本和压缩版本。