考虑这种情况和文件系统架构:
一堆实用程序/好东西/助手/组件/存储在一堆Git存储库中的任何东西(这不能是monorepo,因为它需要支持源代码的多租户支持)。所以,我们在c:\framework\angular
说明了这些共享内容。
现在公司A有一个项目需要从这个共享位置访问一些组件。 A公司的项目位于d:\companyA\projectOneWeb
。
通过相同的逻辑,CompanyB有一个需要使用和访问相同共享内容的项目。 CompanyB&#39的项目位于e:\companyB\projectOneWeb
。
所以,我们有:
c:\framework\angular
d:\companyA\projectOneWeb
d:\comapnyA\anotherProject
e:\companyB\projectOneWeb
e:\companyB\anotherProject
当开发人员将这些存储库映射到他的计算机时,他可以按照他想要的任何顺序执行此操作,但他必须按惯例定义环境变量。
frameworkRoot=c:\framework\angular
companyARoot=d:\companyA
companyBRoot=e:\companyB
现在考虑一批开发人员,这些开发人员正在处理许多公司的100个项目并且仍在增长。
我们希望降低成本,并通过类似项目尽可能多地重复使用。然而,我们当然不想复制/粘贴。
我们如何通过使用已为该系统定义的环境变量,在TypeScript中将c:\framework\angular
中的内容导入d:\companyA\projectOneWeb
?
如果我们认为 ProjectOneWeb 中有catalog.component.ts
,我们希望能够写出来:
// psudo import
import * from env.get('frameworkRoot')/components/social
webpack和生态系统的其他工具是否会支持它?