打字稿:使Tsconfig发出一个文件夹,而不是另一个文件夹



我正在将现有项目从JS转换为打字稿。我希望能够将noEmit = true设置在一个文件夹上,但另一个文件夹具有noEmit = false

原因是我通过WebPack设置了我的客户端(Angular)代码,并且不需要打字稿即可为我生成JavaScript。当服务器(节点/express)仍然需要生成JavaScript。

我尝试了几种不同的组合,但似乎没有找到正确的方法。

我唯一能够上班的解决方案是有两个tsconfig.json并运行一个命令,例如tsc -p srcservertsconfig && tsc -p srcclienttsconfig

我意识到这不是一个好的解决方案,但是我没有得到一个tsconfig来工作,也没有基本的tsconfig。

这是文件夹结构。

|-Src
|--/client
|--/server

有没有一种方法可以使用单个TSC命令来实现此目的?还是我应该格式化项目的更好方法?谢谢!

我认为除了您已经在做的多个tsconfig.json文件之外,还有其他解决方案,按照此答案和此评论。

您可以通过在包装中使用的tsconfig.json和单独的tsconfig-build.json来使其更简化。

// package.json
{
    "scripts": {
        "build": "tsc -p tsconfig-build.json"
    },
    // ...
}

使用此设置(假设默认的tsconfig.json在您的根中),从命令行中运行tsc将使用默认的tsconfig.json,但是运行npm run build将使用tsconfig-build.json。您也可以让一个tsconfig从另一个tsconfig延伸,因此,如果您有很多共同的选项,则可以添加两种配置的tsconfig-base.json

您可能可以通过tsconfig.json文件中的排除属性来实现所需的目标。

检查文档对于排除属性

相关内容

最新更新