浏览器控制台报错:

Uncaught TypeError: Failed to resolve module specifier ".prisma/client/index-browser". Relative references must start with either "/", "./", or "../".

同时页面某些功能异常,比如的 primevueButton 组件 as="a" 属性失效,某些点击事件也失效。

不过这是我的问题,因为我设置了 nitro.prerender.failOnError: false 导致我忽略了很多错误信息。直到加入了 prisma 之后才暴漏出来

关于这个问题,Prisma 官方文档上有提到,但给出的不是最终解决方案

对于 pnpm 来说可以参考这个回答

nuxt.config.ts

import { createRequire } from 'module'
import { defineConfig } from 'vite'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
// @ts-ignore
const __dirname = path.dirname(fileURLToPath(import.meta.url))

const { resolve } = createRequire(import.meta.url)

const prismaClient = `prisma${path.sep}client`

const prismaClientIndexBrowser = resolve('@prisma/client/index-browser').replace(`@${prismaClient}`, `.${prismaClient}`)

export default defineNuxtConfig({

vite: {
    resolve: {
      alias: {
        ".prisma/client/index-browser": path.relative(__dirname, prismaClientIndexBrowser)
      }
    }
}

})

对于 npm 来说,可以参考这个回答,(我没试)

export default defineNuxtConfig({

vite: {
    resolve: {
      alias: {
        ".prisma/client/index-browser": "./node_modules/.prisma/client/index-browser.js"
      }
    }
}

})

而这个问题,是 2022 年就存在的,今年已经是 2025 年😀