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, name: process.env.APP_NAME,
script: 'dist/main.js', script: 'dist/main.js',
node_args: '-r module-alias/register',
cwd: '/app', cwd: '/app',
instances: 1, instances: 1,
exec_mode: 'fork', exec_mode: 'fork',

View File

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

View File

@@ -9,9 +9,9 @@
"private": true, "private": true,
"scripts": { "scripts": {
"build": "tsc -p tsconfig.json", "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: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\"", "lint": "eslint \"src/**/*.ts\"",
"postinstall": "prisma generate" "postinstall": "prisma generate"
}, },
@@ -34,6 +34,7 @@
"dotenv": "^17.4.2", "dotenv": "^17.4.2",
"helmet": "^8.1.0", "helmet": "^8.1.0",
"ioredis": "^5.10.1", "ioredis": "^5.10.1",
"module-alias": "^2.3.4",
"nestjs-pino": "^4.6.1", "nestjs-pino": "^4.6.1",
"passport": "^0.7.0", "passport": "^0.7.0",
"passport-jwt": "^4.0.1", "passport-jwt": "^4.0.1",
@@ -55,5 +56,12 @@
"tsx": "^4.21.0", "tsx": "^4.21.0",
"typescript": "^6.0.2", "typescript": "^6.0.2",
"typescript-eslint": "^8.59.0" "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 { randomUUID } from 'crypto';
import { SmsService } from '@shared/sms/sms.service'; import { SmsService } from '@shared/sms/sms.service';
import { RedisService } from '@shared/cache/redis.service'; import { RedisService } from '@shared/cache/redis.service';
import { PrismaService } from '@prisma/prisma.service'; import { PrismaService } from '@db/prisma.service';
interface AccessPayload { interface AccessPayload {
sub: string; sub: string;

View File

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

View File

@@ -23,7 +23,7 @@
"@config/*": ["./src/config/*"], "@config/*": ["./src/config/*"],
"@apps/*": ["./src/apps/*"], "@apps/*": ["./src/apps/*"],
"@shared/*": ["./src/apps/shared-domain/*"], "@shared/*": ["./src/apps/shared-domain/*"],
"@prisma/*": ["./src/prisma/*"] "@db/*": ["./src/prisma/*"]
}, },
}, },
"include": ["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" resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b"
integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== 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: ms@^2.1.1, ms@^2.1.3:
version "2.1.3" version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"