基于npm-package的分包策略
问题描述:
课程中我们的包是这样规划的
core
|_cli
|_exec
utils
|_get-npm-info
|_format-path
|_log
|_util
...
在框架部分(core),这样的粒度是易于理解的。
在工具部分(utils),这样的粒度是不是太细了呢?过细的粒度会造成工程复杂度的指数级上升。
从一开始就分太细,一旦后期需要调整,那么npmjs.org面临无法删包的情况导致僵局。
我的问题:
- utils中的包,是按什么原则划分颗粒度的呢?
- 用什么指标或者原则,来衡量分包策略是否正确?
- 粒度越小,那么包和包之间共享数据的需求就会越多,还有哪些比较好的实践方式?
我所知道的有:
- 全局变量 process.env
- 发布订阅者模式
- 事件总线
- 内置模块EventEmitter
- 粒度小,能带来哪些优势呢?
请不吝赐教,谢谢
正在回答 回答被采纳积分+1
同学你好,utils中的包是按照下图进行划分的,分包策略你可以参考一下vue-cli和create-react-app的分包,都是按功能进行划分的,像是对浏览器的处理、babel处理、模版这些都是建立单独的包,公共的cli-shared-utils(vue-cli)和 react-dev-utils (create-react-app)的包中封装的都是一些常用的公共方法,像是不常用的的方法会在对应的包中创建utils文件进行使用。衡量分包策略的原则并没有明确的标准。包和包之间共享数据的实践方式,我常用的就是全局变量和属性传递这些。粒度小就是为了方便维护和复用,比如针对某一功能进行升级和优化的时候粒度小能快速找到对应代码进行修改并且不影响全局代码的运行。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星