lerna下,umi怎么修改plugin-dva识别model的路径

119 阅读1分钟

背景

项目使用dumi+lerna做服务化,因为需要编写文档,所以需要让项目的model跑起来,但是umi插件是通过插件约定式的

image.png

该文章主要是通过适配器的思想,去适配当前的需求

过程

  1. 查看源码@umijs/plugin-dva/index,可以看出

1.1. 到时的文件主要是执行getAllModels方法 1.2. getAllModels方法主要执行了getModels方法 1.3. getModels方法通过api.paths.absPagesPath去设置查询的路径

image.png

  1. 修改路径 通过文档可以看出,umi提供的插件能力,有对应的api可以修改absPagesPath

image.png

  1. 编写插件 创建文件./plugins/modifyPaths/index.tsx
import type { IApi } from 'dumi';

export default (api: IApi) => {
  api.modifyPaths((paths) => {
    return { ...paths, absPagesPath: `${paths.cwd}/packages` };
  });
};
  1. 在config.js引入插件
plugins: [
    './plugins/modifyPaths/index.tsx',
],

总结

通过以上操作,我们可以看到,lerna的包全部都被识别成功了。