Typescript 是否在VS2019解决方案/MSBuild中重写tsconfig.json?
我有一个VisualStudio解决方案(而不是VS代码),其中包含多个Typescript 是否在VS2019解决方案/MSBuild中重写tsconfig.json?,typescript,msbuild,visual-studio-2019,tsconfig,Typescript,Msbuild,Visual Studio 2019,Tsconfig,我有一个VisualStudio解决方案(而不是VS代码),其中包含多个tsconfig.json文件,我希望这些文件在生产中表现不同 我想要两个文件(可能更多),比如: tsconfig.json此部分解决方案的默认设置: { “编译器选项”:{ “源地图”:正确, “removeComments”:false, ... }, …更多设置 } tsconfig.release.json覆盖这些设置以排除注释和源映射: { “扩展”:“/tsconfig.json”, “编译器选项”:{ “s
tsconfig.json
文件,我希望这些文件在生产中表现不同
我想要两个文件(可能更多),比如:
tsconfig.json
此部分解决方案的默认设置:{
“编译器选项”:{
“源地图”:正确,
“removeComments”:false,
...
},
…更多设置
}
tsconfig.release.json
覆盖这些设置以排除注释和源映射:{
“扩展”:“/tsconfig.json”,
“编译器选项”:{
“sourceMap”:false,
“removeComments”:真
}
}
如何告诉VS2019/MSBuild在进行发布构建或发布时使用
tsconfig.release.json
覆盖?我已经找到了一种方法,但这很可怕,我很乐意接受一个更好的答案
tsc
可以采用自定义配置文件名,但只有将true
添加到项目文件并添加其他内容以运行它,才能从MSBuild运行它
MSBuild可以为Release和Debug提供不同的选项,但前提是它拥有所有Typescript配置,并且项目中的任何位置都没有名为tsconfig.json
的文件
MSBuild可以在任何文件夹深度找到任何tsconfig.json
,但找不到任何其他文件名-tsconfig.release.json
或tsconfig.debug.json
已退出
MSBuild还可以更改其包含的文件的规则,因此解决方案:
- 将发布覆盖移动到文件夹中,使
变为tsconfig.release.json
。现在需要一些相对路径来查找项目:releaseConfig/tsconfig.json
{
“扩展”:“./tsconfig.json”,
“编译器选项”:{
“sourceMap”:false,
“removeComments”:真
},
“包括”:[“../****”]
}
- 接下来,我们需要对
文件进行两次更改。首先,我们阻止在非发布版本中获取此配置:.csproj
- 最后,在发布版本中,我们交换文件:
默认的
tsconfig.json
已从
中删除,但必须是
,因此releaseConfig\tsconfig.json
中的相对路径仍然可以找到它。既然您有解决此问题的方法,我建议您可以标记自己的答案:)@PerryQian MSFT是的,我必须先等2天:-)