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

问题描述 投票:0回答:2

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

app structure

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

所以我在 api 文件夹内的

tsconfig.json
中设置了别名路径,以便让它很快导入:
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/*"]
    }
  }
}

问题是 TypeScript 正在编译并更改

dist
文件夹下的根结构,并且 Nest cli 找不到
main.js
文件来启动应用程序。

dist folder

有没有办法移动

models
文件夹并保留nestjs结构? 或者也许更改 Nestjs 配置以在
api/src/main.js
上启动应用程序?

typescript directory nestjs
2个回答
24
投票

这是 typescript 在根

src
目录之外存在代码时所做的事情,以确保编译后可以使用相同的路径。您可以修改
nest-cli.json
并添加
entryFile
属性来告诉 Nest
main
文件在哪里。另外,请考虑类似
Nx
之类的内容来帮助创建全栈单一存储库。


0
投票

或者,您可以在

nest-cli.json
文件中配置 Nest 以使用
webpack
编译器,这会在
main.js
位置创建一个
dist/main.js
文件。

"compilerOptions": {
    "webpack": true,
}

这也解决了模型目录中的依赖关系问题(当您在

node_modules
中有单独的
models/node_modules
时)。

© www.soinside.com 2019 - 2024. All rights reserved.