跳到主要内容

模块开发-js 库

目标:

  • 学会基于模块模板项目快发开发一个新的 hel 模块

可以被别的项目动态引用,也可应用其他动态模块作为自己的依赖

开发远程库

克隆模板库

克隆远程库模板为my-xx-lib(名字请按实际需要修改,此处仅做示例)

npx degit https://github.com/hel-eco/hel-tpl-remote-lib my-xx-lib
npm degit

npm degit 命令是为了检出一份不包含任何 git 信息的目录,等同于 git clone xxx_url && cd xxx_url && rm- rf ./.gitinfo

改 package.json

nameappGroupName改为自己想要设定的 hel 模块组名

  "name": "my-xx-lib",
"appGroupName": "my-xx-lib",

改 subApp

src/configs/subApp.ts改为你 hel 模块组名,以便让构建元数据时能够校验通过

export const LIB_NAME = 'my-xx-lib';

开发业务代码

utils目录下新增任意模块,或导入已有的第三方 npm 模块(即是将 npm 模块提升为 hel 动态模块),并在utils/index.ts里导出即可

执行单测

已内置jest,执行npm run test即可

发布组件

先修改package.json里的version

然后发布源码和托管到unpkg文件服务的运行代码

npm run build
npm publish

或发布可供桩函数 mock 的运行代码、源码和托管到unpkg文件服务的运行代码

npm run build_stub
npm publish
提示

build_stub是可选的执行项,仅是为了方便模块使用方的项目执行单测时,jest可通过 npm 的 cjs 模块来做函数打桩,npm run buildnpm run build_stub 二者执行其中一个即可

import entry from 'my-xx-lib/hel_bundle/entry';

jest.doMock('my-xx-lib', () => {
return entry['my-xx-lib'];
});

有关如何发布到自定义的托管文件服务,可跳转到模块发布查阅以便了解更多详情

其余文档正在拼命建设中,有疑问可联系 fantasticsoul 或提 issue ....