在'rootDir'之外的Typescript中汇入档案

wljmcqd8  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(116)

bounty将在6天后过期。回答此问题可获得+150的声望奖励。Eddysanoli希望吸引更多人关注此问题:帮助我让我的Django应用程序在Typescript下正常工作。

我有一个具有以下文件结构的项目

project
|
├── App1/static/App1
|   ├── ts
|   ├── js
|   └── tsconfig.json
|
├── App2/static/App2
|   ├── ts
|   ├── js
|   └── tsconfig.json
|
├── App3/static/App3
|   ├── ts
|   ├── js
|   └── tsconfig.json
|
└── tsconfig.json

每个应用程序都需要在ts目录中找到的编译后的Typescript文件,以进入同一目录中的每个js文件夹中。为了使这一点工作,我在“project”目录的顶部找到了一个全局tsconfig.json文件。然后,每个应用程序中找到的tsconfig.json文件具有以下配置:

{
    "extends": "../../../tsconfig.json",    // Path to global tsconfig.json
    "compilerOptions": {
        "outDir": "js",                     // Where the transpiled Javascript files go
        "rootDir": "ts",                    // Where the Typescript files are
    },
}

然后,当我运行tsc -p App1/static/App1时,例如,App1的ts文件夹中的Typescript文件被编译并放置在js文件夹中。
现在,我的问题是App1有时需要App3中的文件,因此我执行了类似于下面的导入:

// App1/static/App1/test.ts
import { module } from "../../../../App3/static/App3/ts/module.js"

这是可行的,但是,我得到了以下警告的导入:error TS6059: File 'module.js' is not under 'rootDir' '/ts/'. 'rootDir' is expected to contain all source files.
我可以对App1中的tsconfig.json文件做些什么更改来使其正常工作。我曾尝试将../../../App3/static/App3/ts文件夹作为rootDir添加到我的配置中(通过使用rootDirs),但似乎不起作用。

exdqitrt

exdqitrt1#

app1tsconfig.json中删除compilerOptions.rootDir

{
    "extends": "../../../tsconfig.json",    // Path to global tsconfig.json
    "compilerOptions": {
        "outDir": "js",                     
    },
}

相关问题