我有一个TS项目,其中的文件树包含以下文件:
project
├── server
│ ├── tsconfig.json
│ └── src
│ ├── index.ts
│ └── fileInside.ts
└── shared
└── fileOutside.ts
例如index.ts
中:
import { someFunc } from 'server/src/fileInside';
import { anotherFunc } from 'shared/fileOutside';
//the editor doesn't complain here and even auto-imports from these paths
我希望能够从服务器文件中的绝对路径导入文件,因此我将tsconfig.json设置为如下所示:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "./dist",
"baseUrl": "..", // set to make the absolute import dir the project's root dir
},
"include": [
".", "../shared/",
],
"exclude": [
"./dist"
]
}
这个tsconfig
从项目的根目录扩展了另一个tsconfig
文件。我不知道是什么原因导致了这个问题,但我会添加它以防万一:
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": false,
"incremental": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"baseUrl": ".",
"strictNullChecks": true,
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}
当我运行我的程序时,我得到错误:
Error: Cannot find module 'server/src/fileInside'
Require stack:
- C:\vs_code_projects\TypeScript\neo_chess\server\src\index.ts
...
为什么会这样?
1条答案
按热度按时间xzlaal3s1#
当然,这是因为
ts-node
(?!?!)因为***显然***要在ts-node中有绝对导入,你必须安装一个包:
把这些东西加到你的
tsconfig.json
中为什么?知道的人。这就是你的网站开发现状。欢迎来到秀!