我正在将现有项目从 js 转换为 typescript。我希望能够在一个文件夹上设置 noEmit = true
,但让另一个文件夹设置 noEmit = false
。
原因是我的客户端( Angular )代码是通过 webpack 设置的,不需要 typescript 来为我生成 javascript。而服务端(Node/express)仍然需要生成成javascript。
我尝试了几种不同的组合,但似乎没有找到正确的方法。
我能够开始工作的唯一解决方案是拥有两个 tsconfig.json
并运行像 tsc -p src\server\tsconfig && tsc -p src 这样的命令\客户端\tsconfig
我意识到这不是一个好的解决方案,但我还没有得到一个可以工作的 tsconfig,也没有一个基本的 tsconfig。
这是文件夹结构..
|-Src
|--/client
|--/server
有没有办法使用单个 tsc 命令实现此目的?或者有没有更好的方法来格式化项目?谢谢!!
最佳答案
根据 this answer,我认为除了像您已经在做的那样拥有多个 tsconfig.json 文件之外没有其他解决方案。和 this comment .
您可以通过使用 tsconfig.json
进行编译和在 package.json 中使用单独的 tsconfig-build.json
来简化此过程建筑,即:
// package.json
{
"scripts": {
"build": "tsc -p tsconfig-build.json"
},
// ...
}
使用此设置(假设默认 tsconfig.json is in your root ),从命令行运行 tsc
将使用默认 tsconfig.json,但运行 npm run build
将使用 tsconfig-build.json。你也可以有 one tsconfig extend from another ,所以如果你有很多共同的选项,你可以添加一个 tsconfig-base.json
两个配置都从中扩展。
关于javascript - Typescript:使 tsconfig 发出一个文件夹但不发出另一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856082/