import{_ as d,r as t,o as i,c as r,b as e,d as a,a as n,f as o}from"./app.bd9c95b7.js";const c={},l=e("h1",{id:"贡献指南",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#贡献指南","aria-hidden":"true"},"#"),a(" 贡献指南")],-1),p=e("h2",{id:"包概览",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#包概览","aria-hidden":"true"},"#"),a(" 包概览")],-1),h={href:"https://pnpm.io/pnpm-workspace_yaml",target:"_blank",rel:"noopener noreferrer"},u={href:"https://en.wikipedia.org/wiki/Monorepo",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"packages",-1),f=o('

开发准备

开发要求:

',3),b={href:"http://nodejs.org",target:"_blank",rel:"noopener noreferrer"},v={href:"https://pnpm.io/",target:"_blank",rel:"noopener noreferrer"},g=e("p",null,"本项目开发使用的一些主要工具:",-1),_={href:"https://jestjs.io/",target:"_blank",rel:"noopener noreferrer"},k={href:"https://eslint.org/",target:"_blank",rel:"noopener noreferrer"},x={href:"https://prettier.io/",target:"_blank",rel:"noopener noreferrer"},j=o(`

克隆仓库:

git clone https://github.com/WeBankFinTech/fes.js.git

进入fes.js目录,安装依赖:

pnpm i

贡献文档

`,5),w=e("code",null,"docs",-1),q={href:"https://v2.vuepress.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"},P=o(`

第一步:启动服务

pnpm docs:dev

第二步:修改 md 文件

菜单配置在/docs/.vuepress/configs/sidebar/zh.ts中,可以通过此配置找到对应想修改的文档。

如果想添加图片,则可以先把图片添加至/docs/.vuepress/public,在代码中使用:

<img :src="$withBase('framework.png')" alt="架构" />

第三步:查看更新

当 md 文档保存后,文档会自动更新,在http://localhost:8080/查看。

贡献源码

Fes.js统一使用ES Module规范编写源码,代码会在 node 端和浏览器端执行,所以源码需要编译后才能发布成包,再被执行。

启动编译服务

pnpm dev

当我们修改build.config.js中配置的包代码时,会把src目录的源码编译后到lib目录。

修改源码

在了解Fes.js设计前提下,修改核心代码或者插件代码。

验证修改内容

根据需求选择模板项目来验证修改内容,比如选择fes-template

  1. 查看需待验证包是否已经添加到模板项目的依赖中,如果没有则在模板项目的 package.json 中添加包依赖,添加后在根目录执行pnpm关联依赖
  2. 启动模板项目的开发服务
cd packages/fes-template
pnpm dev
  1. 在项目模板中添加代码验证修改内容
  2. 打开localhost:8000查看结果

快速调试技巧

每次修改插件或者核心代码后,等待自动编译完,需要在模板目录重新执行fes dev,比较费时费力。

可以先在模板的 .fes 目录中找到对应临时代码,更改逻辑,验证完后再将变更逻辑保存到正式文件中。

注意

直接修改临时文件切莫重新执行fes dev,修改会被覆盖。

提交 PR

  1. fork 项目!
  2. 创建你的功能分支: git checkout -b my-new-feature
  3. 本地提交新代码: git commit -am 'Add some feature'
  4. 推送本地到服务器分支: git push origin my-new-feature
  5. 创建一个 PR
`,26);function B(E,N){const s=t("ExternalLinkIcon");return i(),r("div",null,[l,p,e("p",null,[a("项目仓库借助于 "),e("a",h,[a("pnpm 工作区"),n(s)]),a(" 来实现 "),e("a",u,[a(" Monorepo"),n(s)]),a(" ,在 "),m,a(" 目录下存放多个互相关联的独立包。")]),f,e("ul",null,[e("li",null,[e("a",b,[a("Node.js v14+"),n(s)])]),e("li",null,[e("a",v,[a("pnpm v8"),n(s)])])]),g,e("ul",null,[e("li",null,[e("a",_,[a("Jest"),n(s)]),a(" 用于单元测试")]),e("li",null,[e("a",k,[a("ESLint"),n(s)]),a(" + "),e("a",x,[a("Prettier"),n(s)]),a(" 用于代码检查和格式化")])]),j,e("p",null,[a("文档代码在"),w,a("目录,基于 "),e("a",q,[a("vuepress"),n(s)]),a(" 实现。")]),P])}const V=d(c,[["render",B],["__file","contributing.html.vue"]]);export{V as default};