解决路径 tsconfig 与 nestjs 有问题

Posted

技术标签:

【中文标题】解决路径 tsconfig 与 nestjs 有问题【英文标题】:Resolve path tsconfig have problem with nestjs 【发布时间】:2020-04-10 03:18:19 【问题描述】:

我使用 NestJS 6.12.9 和 Typescript 3.6.3。我有文件 tsconfig.json:


  "compilerOptions": 
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es2017",
    "sourceMap": true,
    "noEmit": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "moduleResolution": "node",
    "paths":
      "@Models/*":["src/database/entities/*"],
      "@Commons/*":["src/common/*"]
    
  ,
  "exclude": ["node_modules", "dist"],
  "include": [
    "./src/**/*"
  ]

在 jwt.service.ts 文件中,我有代码:

import  User  from "@Models/user.entity";

当我运行 npm run start:dev 时,它会构建到 javascript 中并从 "@Models/user.entity" 导入 User

const user_entity_1 = require("../../../../../../../D:\\Project\\MyJob\\Backend\\src\\database\\entities\\user.entity");

并出现错误:

内部/模块/cjs/loader.js:638 抛出错误; ^

错误:找不到模块 '../../../../../../../D:\Project\MyJob\Backend\src\database\entities\user.entity'ntity ' 在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) 在 Function.Module._load (internal/modules/cjs/loader.js:562:25) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在需要(内部/模块/cjs/helpers.js:25:18) 在对象。 (D:\Project\MyJob\Backend\dist\shared\auth\jwt.service.js:25:23) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3)

它只在我使用时运行:

const user_entity_1 = require("../..\\database\\entities\\user.entity");

【问题讨论】:

【参考方案1】:

我在 Nestjs 中遇到了同样的问题,并像这样解决了这个问题......看图片

【讨论】:

以上是关于解决路径 tsconfig 与 nestjs 有问题的主要内容,如果未能解决你的问题,请参考以下文章

NestJS - 无法初始化 GraphQL 项目

NestJS、PortsgreSQL 和 TypeORM - 迁移运行不正常

Nestjs 项目无法启动,因为它读取了其模块之外的文件

无法使用 tsconfig.json 缩短导入路径

在配置文件“e:/HB/my-project/tsconfig.json”中找不到任何输入。指定的 “include“ 路径为“[“**/*“]”,“exclude“ 路径为“[]”。

在 tsconfig.app.json 中为 Angular 项目定义路径