我有一个具有以下目录结构的 TypeScript 项目:
|- packages
| |- some-package
| | |- src
| | |- index.ts
| |- another-package
| |- src
| |- index.ts
|- tsconfig.json
|- package.json
tsconfig.json
文件包含以下内容:
{
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@company/some-package/*": ["some-package/src/*"],
"@company/another-package/*": ["another-package/src/*"]
}
}
}
some-package/src/index.ts
有以下内容:
export type SomeType = {
prop: string
}
another-package/src/index.ts
有以下内容:
import { SomeType } from '@company/some-ackage'
在 Visual Studio Code 中打开项目时,
another-package/src/index.ts
出现以下错误:
找不到模块“@company/some-package”或其相应的类型声明。
我该如何解决这个问题?
我认为
@company/some-package/*
与 @company/some-package
不匹配。
我认为通常你会让一个包有一个导出文件,然后进行设置以导入该文件。
{
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@company/some-package": ["some-package/src/index.ts"],
"@company/another-package": ["another-package/src/index.ts"]
}
}
}
然后:
// some-package/src/index.ts
import * from './file-a'
import * from './file-b'
// Or just put things directly in here
export type SomeType = {
prop: string
}
我是同样的错误,但是当我为我的源文件夹使用别名路径@时。我必须安装
tsconfig-paths
并将其添加到 package.json 中的开发脚本中:
ts-node-dev --respawn --transpile-only -r tsconfig-paths/register src/index.ts
这样我就可以使用别名路径而不会出现任何错误。 我希望这对你也有用。