Nuxt升级至3.12.2后服务器运行时导入@nuxt/kit报错求助
Nuxt 3.7.4升级至3.12.2后服务器运行时导入@nuxt/kit报错的解决方案
这个是Nuxt 3.8版本之后引入的已知行为变更,并非bug。从Nuxt 3.8开始,框架对服务器运行时(Server Runtime)的模块边界做了更严格的隔离,@nuxt/kit属于构建时/模块上下文专属工具库,不允许在服务器运行时代码(比如server/routes下的文件)中导入。
解决步骤:
- 定位到报错文件
../../packages/bloomreach/src/runtime/server/routes/br-request.get.ts,移除其中对@nuxt/kit的导入- 如果你需要用到
@nuxt/kit里的功能,把相关逻辑迁移到Nuxt模块文件(项目modules目录下的代码,或自定义模块的主文件)中;如果是读取配置,改用服务器运行时可用的useRuntimeConfig()替代
- 如果你需要用到
- 检查所有自定义模块(包括项目依赖的bloomreach模块),确保没有在
runtime/server目录下的代码里引入@nuxt/kit - 清理项目缓存并重新构建:
npx nuxi clean npm run build
你的nuxt.config配置参考:
import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' export default defineNuxtConfig({ app: { head: { script: [ { src: '/assets/js/lightning.js', tagPosition: 'bodyClose', }, ], }, }, postcss: { plugins: { tailwindcss: {}, autoprefixer: {}, }, }, css: ['@pl-web/cms-ui/src/runtime/assets/styles/global.scss'], build: { transpile: ['vuetify'], }, modules: [ (_options, nuxt) => { nuxt.hooks.hook('vite:extendConfig', (config) => { // @ts-expect-error config.plugins.push(vuetify({ autoImport: true })) }) }, '@pinia/nuxt', '@nuxt/devtools', ], vite: { vue: { template: { transformAssetUrls, }, }, }, })
内容的提问来源于stack exchange,提问作者Pimmesz
相关产品推荐
相关产品推荐

