Nuxt3 生成类型错误:无法读取 null 的属性(读取“isCE”)

问题描述 投票:0回答:2

我的应用程序使用 Nuxt3 + Vite + Leaflet + Bootstrap。该应用程序在开发中运行良好,但是当我尝试使用

npm run generate
生成静态站点时,出现以下错误:

TypeError:无法读取 null 的属性(读取“isCE”) 和 未捕获(承诺中)类型错误:无法读取 null 的属性(读取“namespaceURI”)

我认为这与我的插件文件有关。

这是我的 Nuxt3 配置文件:

plugins/nuxt.config.js

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
  target: 'static',
  css: [
      '~/assets/global.scss'
  ],
  router: {
      base: '/'
  }
})

leaflet.client.js

import L from 'leaflet'
import 'leaflet.markercluster';
import 'leaflet-fullscreen';
import 'leaflet-sidebar';
import 'leaflet.vectorgrid';
export default defineNuxtPlugin(nuxtApp => {
  return {
      provide: {
        L
      }
    }
})

plugins/useBootStrap.client.ts

import bootstrap from 'bootstrap/dist/js/bootstrap.bundle'

export default defineNuxtPlugin(nuxtApp => {
  nuxtApp.provide('bootstrap', bootstrap)
  nuxtApp.provide('Tooltip', bootstrap)
  nuxtApp.provide('Carousel', bootstrap)
})

和我的 package.json:

{
  "private": true,
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "dependencies": {
    "@geoman-io/leaflet-geoman-free": "^2.13.0",
    "@popperjs/core": "^2.11.6",
    "@vue-leaflet/vue-leaflet": "^0.6.1",
    "axios": "^0.27.2",
    "bootstrap": "^5.2.0",
    "https": "^1.0.0",
    "leaflet": "^1.9.1",
    "leaflet-fullscreen": "^1.0.2",
    "leaflet-sidebar": "^0.2.4",
    "leaflet.markercluster": "^1.5.3",
    "leaflet.vectorgrid": "^1.3.0",
    "topojson-client": "^3.1.0",
    "vue-google-charts": "^1.1.0",
    "vue-gtag": "^2.0.1"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^3.0.1",
    "nuxt": "3.0.0-rc.11",
    "sass": "^1.55.0",
    "sass-loader": "^13.0.2",
    "vite": "^3.0.9",
    "vite-plugin-mkcert": "^1.9.0"
  }
}
leaflet vuejs3 nuxtjs3
2个回答
1
投票

我终于隔离了问题。即使使用最简单的 Nuxt 应用程序模板也存在问题,因此我寻找服务器问题。事实上,我的 apache 服务器仍然激活了旧的 mod_pagespeed 扩展,它干扰了 Nuxt 水合逻辑(通过更改一些文件名)。

停用扩展解决了我的问题。我花了三天时间才意识到!


0
投票

我遇到了同样的问题,我正在 dev.mydomain.com 上开发一个项目,就我而言,我仅在域上收到此错误,在我的本地我没有收到任何错误。

然后我在cloudflare上为开发域设置“开发模式”。它对我的案例有用。

https://i.ibb.co/GcDQDd2/Screenshot-2024-05-16-at-12-47-35.png

© www.soinside.com 2019 - 2024. All rights reserved.