首先我定义一下我这里的模块概念:一个文件夹下的代码(也就是前端的话可能涉及多个页面以及组件等,后端同理)
其实如果只是追求打包时动态加载不同的模块是很简单的,通过环境变量约束一下打包工具即可
但我还想要有强类型支持,以及直接剪切文件夹就能新增和移除模块。
使用 MonoRepo 的形式进行项目管理
每个顶级模块(包)都可能包含一个后端模块和一个前端模块(也就是可以是单纯的前端模块或后端模块)
存在一个基座包,这是整个项目的核心,所有的其他包都会依赖这个
非基座包的后端模块和前端模块都能直接引用到基座包中的后端依赖和前端依赖,而不需要特别专门的配置
同一个包内的前端模块可以直接引用到后端模块的 api (强类型)以及其他包的后端模块的 api
所有包的后端模块都能直接声明需要的 context ,然后编译时能够感知到基座包是否兜底的提供了所有 context (即编译时能够报错某个 context 缺失)
可以直接剪切文件夹就能新增包和移除包,如果包之间有依赖但对应的包被移除了则编译时应该报错
期待各位朋友的指点(❁´◡`❁)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.