我开始使用 Nest.Js,并创建了一个具有以下结构的全栈应用程序:
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
文件来启动应用程序。
有没有办法移动
models
文件夹并保留nestjs结构?
或者也许更改 Nestjs 配置以在 api/src/main.js
上启动应用程序?
这是 typescript 在根
src
目录之外存在代码时所做的事情,以确保编译后可以使用相同的路径。您可以修改 nest-cli.json
并添加 entryFile
属性来告诉 Nest main
文件在哪里。另外,请考虑类似 Nx
之类的内容来帮助创建全栈单一存储库。
或者,您可以在
nest-cli.json
文件中配置 Nest 以使用 webpack
编译器,这会在 main.js
位置创建一个 dist/main.js
文件。
"compilerOptions": {
"webpack": true,
}
这也解决了模型目录中的依赖关系问题(当您在
node_modules
中有单独的 models/node_modules
时)。