gpt4 book ai didi

typescript - 错误 TS6059 : File is not under 'rootDir' .。 'rootDir' 预计包含所有源文件

转载 作者:行者123 更新时间:2023-12-04 11:03:21 30 4
gpt4 key购买 nike

我收到了这个相当无意义的 tsc 编译错误:

error TS6059: File '/Users/alex/codes/interos/teros-cli/src/logging.ts' is not under 'rootDir' '/Users/alex/codes/teros/notifier-server/src'. 'rootDir' is expected to contain all source files.



我的密码是 /Users/alex/codes/teros/notifier-server以及 /Users/alex/codes/teros/notifier-server/tsconfig.json 的 tsconfig.json 文件是:
{
"compilerOptions": {
"outDir": "dist",
"allowJs": false,
"pretty": true,
"resolveJsonModule": true,
"sourceMap": false,
"skipLibCheck": true,
"rootDir": "src",
"declaration": false,
"baseUrl": ".",
"target": "es2018",
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"allowUnreachableCode": true,
"lib": [
"es2017",
"es2018"
]
},
"compileOnSave": false,
"include": [
"src"
]
}

这似乎是一个错误..因为 teros-cli 目录在 PWD 之外,并且由单独的 tsconfig.json 文件管理。

我什至将此字段更改为:
  "include": [
"/Users/alex/codes/teros/notifier-server/src"
],
"exclude": [
"/Users/alex/codes/teros/teros-cli"
]

仍然得到同样的错误。

最佳答案

rootDir 是什么?
rootDir 设置为包含所有源文件的根文件夹。如果未指定,TS 将自动为所有输入选择合适的父文件夹。 rootDir 也是 determines the output directory
错误是什么意思?
我的猜测是您在 import 某处有 logging.tsnotifier-server 语句:

import {logger} from "@teros-cli/logging" // or similar
然后 logging.ts 模块将被编译器 automatically included ,不管 include 中的 excludetsconfig.json 选项。检查所有包含文件的一种方法是 tsc --listFilestsconfig.json 之外的 notifier-server 文件在这里没有帮助。编译器在每次 tsc 编译时只选择一个配置,并且可以选择提取 inherited configs 。如果在 notifier-server 项目根目录(您开始 tsc 的位置)中找不到它,则只有编译器 searches upwards the parent directory chain ,直到找到配置。
可能的解决方案
一种解决方法是从编译器选项中删除 "rootDir": "src",以便自动设置它。注意: rootDir 将把这两个项目都视为输入!
替代方案:您可以在 logging.ts 项目中添加一个单独的 notifier-server/src 模块并删除外部 import
希望,这有帮助!

关于typescript - 错误 TS6059 : File is not under 'rootDir' .。 'rootDir' 预计包含所有源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57422458/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com