【发布时间】:2021-02-19 17:23:13
【问题描述】:
我收到一个 TypeScript 警告,提示找不到该模块。
我在我的 NextJS 应用程序上使用 TypeScript,这一次只是在我一直使用自定义路径并且之前没有遇到过这个问题时发生过。
我有这个结构的例子
/models
|-- index.ts
|-- User.ts
/pages
/api
/users
|-- index.ts
我正在尝试从我设置的models 自定义路径导入我的Userschema,但它给了我一个错误
这就是我在models 中的index.ts 的样子
export { default as User } from './User';
这就是我在 api/user/index.ts 中导入它的方式
import { User } from '@/models';
我的tsconfig 文件如下所示
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"baseUrl": ".",
"paths": {
"@/components/*": [
"./components/*"
],
"@/types/*": [
"./types/*"
],
"@/utils/*": [
"./utils/*"
],
"@/middlewares/*": [
"./middlewares/*"
],
"@/models/*": [
"./models/*"
],
"@/lib/*": [
"./lib/*"
]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}
使用索引文件以外的自定义路径导入,例如
import dbConnect from '@/utils/dbConnect' 可以工作,但是对于索引文件,我仍然需要在导入时指定索引文件名才能使其工作。 import { User } from '@/models/index'
【问题讨论】:
标签: typescript next.js