我得到了一个相当荒谬的tsc转换错误:
error TS6059:文件TS6059不在“rootDir”'/Users/alex/codes/teros/notifier-server/src'.下面“rootDir”应该包含所有源文件。
我的PWD是/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"
]
}
这似乎是一个bug..since teros-cli dir在PWD之外,由一个单独的tsconfig.json文件管理。
我甚至将这个字段更改为:
"include": [
"/Users/alex/codes/teros/notifier-server/src"
],
"exclude": [
"/Users/alex/codes/teros/teros-cli"
]
仍然会有同样的错误。
发布于 2019-08-09 11:29:20
什么是rootDir
?
rootDir
设置为根文件夹,其中包含所有源文件。如果没有指定,TS将自动为所有输入选择合适的父文件夹。rootDir
也是确定输出目录.
这个错误意味着什么?
我猜您有一个import
语句用于logging.ts
在notifier-server
中的某个位置
import {logger} from "@teros-cli/logging" // or similar
然后logging.ts
模块将是编译器的包含,而不管tsconfig.json
中的include
和exclude
选项如何。检查所有包含的文件的一种方法是tsc --listFiles
。
在这里,tsconfig.json
文件在notifier-server
之外没有帮助。编译器在每次tsc
编译时准确地获取一个配置,并可选择地提取继承的信任。如果在notifier-server
项目根(启动tsc
的地方)中找不到一个,那么只有编译器向上搜索父目录链。才能找到配置。
可能的解决办法
一个解决办法是从编译器选项中删除"rootDir": "src"
,这样就可以自动设置它。警告:然后rootDir
会将这两个项目视为输入!
替代方案:您可以添加一个单独的logging.ts
模块,包含在notifier-server/src
项目中,并删除外部import
。
希望能帮上忙!
发布于 2022-05-11 12:54:10
通过在paths
s中复制tsconfig
,我得到了这个错误:
// tsConfig.json
"paths": {
"@myLib/myPackage": ["packages/myPackage/src/index.ts"],
},
// packages/myOTHERPackage/tsConfig.json
"paths": {
"@myLib/myPackage": ["../myPackage/src/index.ts"]
},
取消后者解决了这个问题
发布于 2022-07-20 14:26:27
-src
index.ts
-tsconfig.json
如果在tsconfig.josn中,它的"rootDir": "./src"
& index.ts
位于根中,则它不能工作,请确保index.ts
在src
中
https://stackoverflow.com/questions/57422458
复制相似问题