Nest.Js:从外部项目文件夹导入文件

Edu*_*ato 7 directory typescript nestjs

我开始使用 Nest.Js 并创建了一个具有以下结构的全栈应用程序:

应用程序结构

api:nestjs 应用程序
client:前端应用程序
models:后端和前端之间的共享模型(仅限接口)

所以我tsconfig.json在 api 文件夹中设置了别名路径,让它很快导入:import { User } from 'models/user.model'

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "incremental": true, 
    "outDir": "./dist",
    "baseUrl": "./",
    "paths": {
      "models/*": ["../models/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是打字稿正在编译和更改dist文件夹下的根结构,而 nest cli 没有找到main.js启动应用程序的文件。

dist 文件夹

有没有办法移动models文件夹并保留 nestjs 结构?或者可能更改 nestjs 配置以启动应用程序api/src/main.js

Jay*_*iel 8

这是打字稿在根src目录之外存在代码时所做的事情,以确保在编译后可以使用相同的路径。您可以修改nest-cli.json并添加一个entryFile属性来告诉 Nestmain文件的位置。此外,请考虑Nx帮助创建全栈 monorepos 之类的东西。

  • 完美的!我在 `nest-cli.json` 上设置了 `"entryFile": "api/src/main"` 并且它起作用了!谢谢你! (6认同)
  • 杰出的!这就是我要找的!(像无头苍蝇一样搜索和尝试之后......) (2认同)