Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript TS+;Monorepo:如何构建_Typescript_Build_Yarn Workspaces - Fatal编程技术网

Typescript TS+;Monorepo:如何构建

Typescript TS+;Monorepo:如何构建,typescript,build,yarn-workspaces,Typescript,Build,Yarn Workspaces,我正在尝试使用Thread workspace设置一个monorepository,以包含一些typescript项目和一个共享库。所有包都是用typescript编写的。但对于如何在其他应用程序中包含共享库,我有点不知所措。完美的方案是在共享包中保持typescript文件不变,并按需编译(在构建需要的应用程序时) 目前,我在需要它的应用程序的package.json中引用了我的共享包(但每次进行更改时,我都必须手动构建共享包)。纱线工作区负责向应用程序提供共享包 我想改变共享包与其他包(应用

我正在尝试使用Thread workspace设置一个monorepository,以包含一些typescript项目和一个共享库。所有包都是用typescript编写的。但对于如何在其他应用程序中包含共享库,我有点不知所措。完美的方案是在共享包中保持typescript文件不变,并按需编译(在构建需要的应用程序时)

目前,我在需要它的应用程序的package.json中引用了我的共享包(但每次进行更改时,我都必须手动构建共享包)。纱线工作区负责向应用程序提供共享包

我想改变共享包与其他包(应用程序)集成的方式。我设置了ts编译器选项的path属性(通过path引用包)。然后,我删除了应用程序的package.json中的依赖项。在tsconfig中添加了一个项目引用,以指向共享包的tsconfig。但是当我尝试构建应用程序时,它抛出一个错误,表示源代码不是rootDir的一部分(这是正常的,因为它位于共享包的rootDir下)。我错过了什么,但找不到什么

这就是我所拥有的:

根tsconfig.base.ts(由所有tsconfig扩展):

{
“编译器选项”:{
“目标”:“esnext”,
“模块”:“commonjs”,
“宣言”:正确,
“源地图”:正确,
“removeComments”:正确,
“严格”:是的,
“esModuleInterop”:正确,
“moduleResolution”:“节点”,
“路径”:{
“共享”:[“/packages/shared/src”]
}
},
“排除”:[
“节点_模块”,
“区”,
“测试”
]
}
共享包: 路径:/packages/shared
所有ts文件都位于src目录中。
t配置ts

{
“扩展”:“../../tsconfig.base.json”,
“编译器选项”:{
“outDir”:“dist”,
“rootDir”:“src”,
“复合”:没错,
“ForceConsistentCasingFileName”:true
},
“包括”:[“src”]
}
包装(应用):
路径:/packages/a
所有ts文件都位于src目录中。
t配置ts

{
“扩展”:“../../tsconfig.base.json”,
“编译器选项”:{
“resolveJsonModule”:true,
“实验生态学者”:没错,
“emit decoromentadata”:正确,
“outDir”:“dist”,
“rootDir”:“src”,
},
“参考资料”:[
{“路径”:../shared/tsconfig.json}
]
}
您对如何将共享包与按需构建集成有何建议?或者,也许可以简单地使用应用程序A的构建过程构建共享包,有什么想法吗? 如果您认为我的方法不正确或可以改进,请随时提出建议