首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误TS6059:文件不在“rootDir”下面。“rootDir”应该包含所有源文件

错误TS6059:文件不在“rootDir”下面。“rootDir”应该包含所有源文件
EN

Stack Overflow用户
提问于 2019-08-09 01:29:12
回答 3查看 75.7K关注 0票数 61

我得到了一个相当荒谬的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文件是:

代码语言:javascript
运行
复制
{
  "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文件管理。

我甚至将这个字段更改为:

代码语言:javascript
运行
复制
  "include": [
    "/Users/alex/codes/teros/notifier-server/src"
  ],
  "exclude": [
    "/Users/alex/codes/teros/teros-cli"
  ]

仍然会有同样的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-09 11:29:20

什么是rootDir

rootDir设置为根文件夹,其中包含所有源文件。如果没有指定,TS将自动为所有输入选择合适的父文件夹。rootDir也是确定输出目录.

这个错误意味着什么?

我猜您有一个import语句用于logging.tsnotifier-server中的某个位置

代码语言:javascript
运行
复制
import {logger} from "@teros-cli/logging" // or similar

然后logging.ts模块将是编译器的包含,而不管tsconfig.json中的includeexclude选项如何。检查所有包含的文件的一种方法是tsc --listFiles

在这里,tsconfig.json文件在notifier-server之外没有帮助。编译器在每次tsc编译时准确地获取一个配置,并可选择地提取继承的信任。如果在notifier-server项目根(启动tsc的地方)中找不到一个,那么只有编译器向上搜索父目录链。才能找到配置。

可能的解决办法

一个解决办法是从编译器选项中删除"rootDir": "src",这样就可以自动设置它。警告:然后rootDir会将这两个项目视为输入!

替代方案:您可以添加一个单独的logging.ts模块,包含在notifier-server/src项目中,并删除外部import

希望能帮上忙!

票数 55
EN

Stack Overflow用户

发布于 2022-05-11 12:54:10

通过在paths s中复制tsconfig,我得到了这个错误:

代码语言:javascript
运行
复制
// tsConfig.json
"paths": {
  "@myLib/myPackage": ["packages/myPackage/src/index.ts"],
},

// packages/myOTHERPackage/tsConfig.json
"paths": {
 "@myLib/myPackage": ["../myPackage/src/index.ts"]
},

取消后者解决了这个问题

票数 2
EN

Stack Overflow用户

发布于 2022-07-20 14:26:27

代码语言:javascript
运行
复制
 -src
     index.ts
 -tsconfig.json

如果在tsconfig.josn中,它的"rootDir": "./src" & index.ts位于根中,则它不能工作,请确保index.tssrc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57422458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档