从自定义绝对路径导入文件时如何修复 "Cannot find module"?

How do I fix "Cannot find module" when importing files from custom absolute path?

我尝试使用 TypeScript 从头开始​​创建一个 NodeJS,文件结构如下:

my-project
|
|--node_modules
|--src
|   |--index.ts
|   |--test.ts
|
|--package.json
|--tsconfig.json
|--...

然后在tsconfig.json中,我添加了baseUrlpaths以允许绝对导入

{
  "compilerOptions": {
    "target": "ES5",                                 
    "lib": ["es5", "es6", "ESNext"],                                       
    "experimentalDecorators": true,                   
    "emitDecoratorMetadata": true,                    
    "module": "CommonJS",                                
    "moduleResolution": "Node",                      
    "baseUrl": ".",                                 
    "paths": {
      "@src/*": ["src/*"],
      "@root/*": ["*"]
    },                                                 
    "resolveJsonModule": true,  
    "sourceMap": true,                                
    "outDir": "./build",                                   
    "allowSyntheticDefaultImports": true,             
    "esModuleInterop": true,                             
    "forceConsistentCasingInFileNames": true,            
    "strict": true,                                     
    "skipLibCheck": true                                 
  },
  "exclude": ["node_modules", "build"]
}

我创建了这样的简单代码,VSCode 仍然检测 test.ts 并通过严格模式的 linter 检查。

// src/test.ts
export const a = 1;
// src/index.ts
import { a } from '@src/test'
console.log(a);

在那之后,我 运行 npx nodemon src/index.ts 终端显示错误:

Error: Cannot find module '@src/test'
Require stack:
- D:\self-project\typeorm-test\src\index.ts

我是不是配置路径错了?有人知道如何解决这个问题吗?

我能找到的唯一解决方法是安装 tsconfig-paths 作为开发依赖项:

npm install --save-dev tsconfig-paths

我还安装了 ts-node 作为开发依赖项。然后在 package.json 中的脚本中添加:

"dev": "nodemon --exec npx ts-node -r tsconfig-paths/register