typescript编译dist目录,启动编译循环

typescript编译dist目录,启动编译循环,typescript,visual-studio-code,Typescript,Visual Studio Code,我正在开发一个实际上是monorepo的存储库。我正在尝试添加一个模块,我想在上面使用typescript。我在包文件夹的根目录中添加了一个tsconfig.json文件,配置如下: { "compilerOptions": { "compileOnSave":true, "watch": true, "module": "commonjs", "target": "es5", "allowJs": true

我正在开发一个实际上是monorepo的存储库。我正在尝试添加一个模块,我想在上面使用typescript。我在包文件夹的根目录中添加了一个tsconfig.json文件,配置如下:

{
    "compilerOptions": {
        "compileOnSave":true,
        "watch": true,
        "module": "commonjs",
        "target": "es5",
        "allowJs": true,
        "noImplicitAny": true,
        "sourceMap": true,
        "strictNullChecks": true,
        "outDir": "./dist",
        "rootDir": "./src"
    },
    "exclude": [
        "node_modules",
    ]
}
此配置有两个问题:

1) typescript编译器启动一个编译循环:它编译dist文件夹,然后在dist文件夹下创建另一个dist文件夹,并再次启动该过程。我可以通过将
dist
添加到exclude数组来解决这个问题,但我不明白为什么会发生这种情况

2) 我使用的是vscode,我希望在编辑器中直接使用保存时编译,但它无法识别我的tsconfig,甚至无法创建构建任务

这是我的回购结构

    • package.json
    • src
    • 单元1
    • 单元2
    • 模块ts
      • tsconfig.json
      • src
      • 距离
      • package.json

我不确定,但您的问题可能是allowJs。它可能认为在编译TS代码之后还需要包括dist文件夹。您可以尝试将dist文件夹移到module ts文件夹之外,看看是否会停止。或将allowJs设置为false.:)亲爱的@toskv,正如我所说,我可以使用
exclude
选项排除其他文件夹,但这感觉不对。你的第一个问题是问为什么会发生这种情况。我是说这可能是因为allowJs的特性好吧,公平地说,你是对的,问题是allowjs选项。现在最好有一个解决问题的方法,我不确定,但你的问题可能是allowJs。它可能认为在编译TS代码之后还需要包括dist文件夹。您可以尝试将dist文件夹移到module ts文件夹之外,看看是否会停止。或将allowJs设置为false.:)亲爱的@toskv,正如我所说,我可以使用
exclude
选项排除其他文件夹,但这感觉不对。你的第一个问题是问为什么会发生这种情况。我是说这可能是因为allowJs的特性好吧,公平地说,你是对的,问题是allowjs选项。现在,最好也能找到解决问题的办法