mklink和qiankun子项目依赖包

103 阅读2分钟

操作系统:Windows

场景:在qiankun框架下,子项目越来越多

问题:

1.如果每一个子项目都要安装自己的依赖,那么在安装依赖这件事上,会消耗非常多的时间。

2.公司有规定,部署和发包必须通过提交编译流程,然后由编译服务器进行统一的编译。

3.子项目所安装的依赖,彼此之间的差别并不大。如果通过copy来处理,部分可行,但不完全可行。

4.每一个新的参与到项目的开发者,都必须逐个安装子项目的依赖,同样也是非常耗时,以及本身公司网络也不好,导致开发情绪不高。

下图是本人在开发中所使用到的子项目,个数非常多,而且未来可能会更多。

image.png

基于上述的一些情况,和实际开发过程中遇到的问题。我就在想,存不存在这么一种可能,通过目录符号链接来处理这么一件事,类似于在window的桌面上,增加一个快捷方式的功能(不完全是,但是大概是这么个意思)


那么就引出了mklink

mklink 是 Windows下用于创建符号链接的工具.

NTFS符号链接又称“符号链接”,是 NTFS文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做“目标”

那么按照上述的需求描述,接下来需要进行的工作是:

1.构建一个公共依赖包

2.需要一个批处理文件,能够直接把所有子项目都通过目录符号链接来指向该公共依赖包

image.png


这个是最开始写的批处理文件,后面发现,每次添加一个子项目都必须改文件,特别麻烦,应该有一种方法,可以遍历文件夹下的所有文件夹,然后根据文件夹的名称来进行链接。 image.png

这是改良后的批处理文件

image.png

自此,不管子项目有多少个,该批处理文件都不需要去变更,都能兼容。


image.png

自此,如果子项目的node_modules中出现了这个箭头符号,则表示构建完成。这样,每一个子项目都可以npm run指令。

注意:

1.后续所有子项目都必须在dependent中安装相关的依赖,否则你安装的依赖可能不生效。

2.如果子项目有独立渲染的需要,那么在子项目的package.json中也必须添加相应的依赖,不然可能导致独立渲染不成功。