You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS集成Prisma报错:找不到src/prisma/prisma.module.js模块

NestJS + Prisma 模块找不到错误解决

错误信息

Error : Cannot find module 'src/prisma/prisma.module.js'
Require stack: - /home/cedric/Bureau/programmation/project_bank/project/dist/auth/auth.module.js
- /home/cedric/Bureau/programmation/project_bank/project/dist/app.module.js
- /home/cedric/Bureau/programmation/project_bank/project/dist/main.js

问题背景

开发基于NestJS和Prisma的项目时,尝试给PrismaModule添加@Global装饰器后撤销操作,但上述错误依然存在,推测是编译缓存或代码路径问题导致。

相关代码文件

prisma.module.ts

import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';

@Module({
  providers: [PrismaService],
  exports: [PrismaService],
})
export class PrismaModule {}

prisma.service.ts(测试文件)

import { Test, TestingModule } from '@nestjs/testing';
import { PrismaService } from './prisma.service';

describe('PrismaService', () => {
  let service: PrismaService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [PrismaService],
    }).compile();

    service = module.get<PrismaService>(PrismaService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });
});

AuthModule

import { Module } from "@nestjs/common";
import { PrismaModule } from "src/prisma/prisma.module.js";
import { PrismaService } from "src/prisma/prisma.service.js";
import { AuthController } from "./auth.controller.js";
import { AuthService } from "./auth.service.js";

@Module({
    imports: [PrismaModule],
    controllers: [AuthController],
    providers: [AuthService, PrismaService],
})
export class AuthModule {}

app.module.ts

import { CustomersModule } from './customers/customers.module';
import { PrismaModule } from './prisma/prisma.module';

@Module({
  imports: [AuthModule, CustomersModule, PrismaModule, ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

解决步骤

  1. 修正导入路径后缀
    TypeScript项目中导入文件无需添加编译后的.js后缀,编译器会自动处理。修改AuthModule的导入语句:

    import { PrismaModule } from "src/prisma/prisma.module";
    import { PrismaService } from "src/prisma/prisma.service";
    import { AuthController } from "./auth.controller";
    import { AuthService } from "./auth.service";
    
  2. 补全AppModule的缺失导入
    app.module.ts中使用了AuthModule但未添加对应导入语句,需补充:

    import { AuthModule } from './auth/auth.module';
    import { CustomersModule } from './customers/customers.module';
    import { PrismaModule } from './prisma/prisma.module';
    
  3. 清理编译产物并重新构建

    • 删除项目根目录下的dist文件夹:
      Linux/Mac:rm -rf dist
      Windows:rmdir /s dist
    • 重新编译项目:npm run build(或yarn build)
    • 启动服务:npm run start(或yarn start)
  4. 额外优化:避免重复注入服务
    由于PrismaModule已导出PrismaService,AuthModule无需在providers数组中再次声明,只需保留AuthService即可:

    providers: [AuthService],
    

内容的提问来源于stack exchange,提问作者Cédric Leroy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:56:52