所以我有一个 monorepo 工作区,其中有一个与我的 Express 应用程序共享的公共文件夹。我的公共文件夹在 common/dist 中转换为 JS,我希望我的转换后的快速代码能够访问它。那么,当我的 ts 文件使用 common/schema 但 js 文件需要 common/dist/schema 时,我该如何处理导入呢?
要在 TypeScript 文件使用
common/schema
但 JavaScript 文件需要 common/dist/schema
时处理导入,您可以使用 TypeScript 路径映射并适当配置模块分辨率。
设置方法如下:
配置 TypeScript 路径映射:在 TypeScript 配置文件 (
tsconfig.json
) 中,您可以定义别名 common/schema
到 common/dist/schema
的路径映射。这允许 TypeScript 解析从 common/schema
的导入到正确的转译 JavaScript 文件。
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"common/schema": ["common/dist/schema"]
}
}
}
在 TypeScript 文件中使用相对导入:在 TypeScript 文件中,使用相对路径导入模块 (
import ... from './schema'
)。 TypeScript 将根据路径映射配置解析这些导入。
编译 TypeScript 代码:编译 TypeScript 代码时,请确保它在正确的目录中生成 JavaScript 文件 (
common/dist
)。
在 JavaScript 文件中需要转译模块:在 JavaScript 文件中,您可以使用适当的相对路径 (
require('./schema')
) 来要求转译模块。
通过此设置,TypeScript 会将从
common/schema
的导入解析为位于 common/dist/schema
中的正确转译 JavaScript 文件,从而允许您的 TypeScript 和 JavaScript 文件在 Express 应用程序中无缝协作。