我得到了解决方案。我将详细说明步骤以防对其他人有所帮助。
在您的项目中添加路径映射时,您有机会使用更短的绝对路径到模块,它有一些优点/缺点,但总的来说,我认为使用模块时会很棒。
在测试、调试或运行应用程序时可能会出现与在开发模式下工作时不同的问题。
所以使用jest,你需要添加:
"jest": {
"moduleFileExtensions": [ ... ],
"moduleNameMapper": {
"@db/(.*)": "<rootDir>/core/database/$1",
"@exceptions/(.*)": "<rootDir>/core/exceptions/$1",
"@permissions/(.*)": "<rootDir>/permissions/$1",
"@roles/(.*)": "<rootDir>/roles/$1",
"@users/(.*)": "<rootDir>/users/$1",
"@videos/(.*)": "<rootDir>/videos/$1"
},
"rootDir": "src",
...
然后对于调试,我需要执行以下步骤:
1) 更新 vscode 中的 launch.json:
{
"type": "node",
"request": "launch",
"name": "Nest Debug",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"debug"
],
"port": 9229
},
2) 更新 package.json 脚本以添加:
"debug": "nodemon --config nodemon-debug.json",
3) 安装 tsconfig-paths - (npm install --save-dev tsconfig-paths)
https://github.com/dividab/tsconfig-paths
4) 创建/更新 nodemon-debug.json 文件:
{
"watch": [
"src"
],
"ext": "ts",
"ignore": [
"src/**/*.spec.ts"
],
"exec": "node --inspect-brk -r ts-node/register -r tsconfig-paths/register src/main.ts"
}
注意这一行
node --inspect-brk -r ts-node/register -r tsconfig-paths/register src/main.ts
与nodemon.json的区别是:
- Nodemon.json: "exec": "ts-node -r tsconfig-paths/register src/main.ts"
- Nodemon-debug.json: "exec": "ts-node -r tsconfig-paths/register -r tsconfig-paths/register src/main.ts "