Edd*_*oli 10 typescript tsconfig
我有一个具有以下文件结构的项目
\nproject\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 App1/static/App1\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ts\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 js\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 App2/static/App2\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ts\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 js\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 App3/static/App3\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ts\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 js\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n|\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n
Run Code Online (Sandbox Code Playgroud)\n每个应用程序都需要在目录中找到已编译的 Typescript 文件ts
才能进入js
同一目录中的每个文件夹。为了使这项工作到目前为止,我tsconfig.json
在“项目”目录的顶部找到了一个全局文件。然后,tsconfig.json
在每个应用程序内部找到的文件具有以下配置:
{\n "extends": "../../../tsconfig.json", // Path to global tsconfig.json\n "compilerOptions": {\n "outDir": "js", // Where the transpiled Javascript files go\n "rootDir": "ts", // Where the Typescript files are\n },\n}\n
Run Code Online (Sandbox Code Playgroud)\n然后,tsc -p App1/static/App1
例如,当我运行时,App1\ 文件夹内的 Typescript 文件ts
将被编译并放置在该文件夹内js
。到目前为止一切都还好。
现在,我的问题是有时 App1 需要来自 App3 的文件,因此我执行类似于此的导入:
\n// App1/static/App1/test.ts\nimport { module } from "../../../../App3/static/App3/ts/module.js"\n
Run Code Online (Sandbox Code Playgroud)\n这有效,但是,我在导入时收到以下警告:error TS6059: File \'module.js\' is not under \'rootDir\' \'/ts/\'. \'rootDir\' is expected to contain all source files.
我可以对tsconfig.json
App1 中的文件进行哪些更改才能使其正常工作。我尝试在我的配置中将../../../App3/static/App3/ts
文件夹添加为 a (通过使用),但这似乎不起作用。rootDir
rootDirs
引用package.json文件中的每个子项目
// App1 package.json:
{
"dependencies": {
"app2": "../App2/static/App2",
"app3": "../App3/static/App3",
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以将其他应用程序作为外部包引用
import { module } from "app3/js/module.js"
导入已编译的 JavaScript,而不是源打字稿。
我不能 100% 确定您是否需要摆弄导入/导出设置,但这应该可以帮助您完成 90% 的工作。
您可能还需要在每个子项目的 tsconfig 中设置 "declaration": true,以便在构建文件夹中创建 .d.ts 文件。
归档时间: |
|
查看次数: |
6366 次 |
最近记录: |