fix(runtime): 修复容器内路径别名导致的模块加载失败
All checks were successful
CI / ci (push) Successful in 1m26s

为 Node/PM2 增加 module-alias 运行时解析,并将本地 Prisma 服务别名改为 @db,避免与 @prisma/client 冲突,确保 Docker 启动时可正确加载 dist 模块。

Made-with: Cursor
This commit is contained in:
2026-04-28 06:57:10 +08:00
parent b5b4167c7c
commit e16101865d
7 changed files with 20 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ module.exports = {
{
name: process.env.APP_NAME,
script: 'dist/main.js',
node_args: '-r module-alias/register',
cwd: '/app',
instances: 1,
exec_mode: 'fork',

View File

@@ -3,6 +3,7 @@ module.exports = {
{
name: 'chat-one-service',
script: 'dist/main.js',
node_args: '-r module-alias/register',
cwd: '/srv/chat-one-service/current',
instances: 1,
exec_mode: 'fork',

View File

@@ -9,9 +9,9 @@
"private": true,
"scripts": {
"build": "tsc -p tsconfig.json",
"start": "node dist/main.js",
"start": "node -r module-alias/register dist/main.js",
"start:dev": "tsx watch src/main.ts",
"start:debug": "node --inspect=0.0.0.0:9229 dist/main.js",
"start:debug": "node --inspect=0.0.0.0:9229 -r module-alias/register dist/main.js",
"lint": "eslint \"src/**/*.ts\"",
"postinstall": "prisma generate"
},
@@ -34,6 +34,7 @@
"dotenv": "^17.4.2",
"helmet": "^8.1.0",
"ioredis": "^5.10.1",
"module-alias": "^2.3.4",
"nestjs-pino": "^4.6.1",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
@@ -55,5 +56,12 @@
"tsx": "^4.21.0",
"typescript": "^6.0.2",
"typescript-eslint": "^8.59.0"
},
"_moduleAliases": {
"@common": "dist/common",
"@config": "dist/config",
"@apps": "dist/apps",
"@shared": "dist/apps/shared-domain",
"@db": "dist/prisma"
}
}

View File

@@ -9,7 +9,7 @@ import { JwtService } from '@nestjs/jwt';
import { randomUUID } from 'crypto';
import { SmsService } from '@shared/sms/sms.service';
import { RedisService } from '@shared/cache/redis.service';
import { PrismaService } from '@prisma/prisma.service';
import { PrismaService } from '@db/prisma.service';
interface AccessPayload {
sub: string;

View File

@@ -5,7 +5,7 @@ import {
Injectable,
NotFoundException,
} from '@nestjs/common';
import { PrismaService } from '@prisma/prisma.service';
import { PrismaService } from '@db/prisma.service';
import {
ChatMessage,
ProviderUsage,

View File

@@ -23,7 +23,7 @@
"@config/*": ["./src/config/*"],
"@apps/*": ["./src/apps/*"],
"@shared/*": ["./src/apps/shared-domain/*"],
"@prisma/*": ["./src/prisma/*"]
"@db/*": ["./src/prisma/*"]
},
},
"include": ["src/**/*", "prisma/**/*"],

View File

@@ -1861,6 +1861,11 @@ minipass@^7.1.2, minipass@^7.1.3:
resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b"
integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==
module-alias@^2.3.4:
version "2.3.4"
resolved "https://registry.npmmirror.com/module-alias/-/module-alias-2.3.4.tgz#7c2b0442ba1114744e97288963db637859db4094"
integrity sha512-bOclZt8hkpuGgSSoG07PKmvzTizROilUTvLNyrMqvlC9snhs7y7GzjNWAVbISIOlhCP1T14rH1PDAV9iNyBq/w==
ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"