背景
项目使用dumi+lerna做服务化,因为需要编写文档,所以需要让项目的model跑起来,但是umi插件是通过插件约定式的
该文章主要是通过适配器的思想,去适配当前的需求
过程
- 查看源码@umijs/plugin-dva/index,可以看出
1.1. 到时的文件主要是执行getAllModels方法
1.2. getAllModels方法
主要执行了getModels方法
1.3. getModels方法
通过api.paths.absPagesPath
去设置查询的路径
- 修改路径
通过文档可以看出,umi提供的插件能力,有对应的api可以修改
absPagesPath
- 编写插件 创建文件./plugins/modifyPaths/index.tsx
import type { IApi } from 'dumi';
export default (api: IApi) => {
api.modifyPaths((paths) => {
return { ...paths, absPagesPath: `${paths.cwd}/packages` };
});
};
- 在config.js引入插件
plugins: [
'./plugins/modifyPaths/index.tsx',
],
总结
通过以上操作,我们可以看到,lerna的包全部都被识别成功了。