В моем приложении nuxt3 я пытаюсь установить пакет vue3-spinner. Вот моя реализация:
// file: @/plugins/vue3-spinner.js
import vue3Spinner from 'vue3-spinner'
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(vue3Spinner)
})
// file: @/components/MyComponent.vue
<script setup>
import { DotLoader } from "vue3-spinner"
console.info(DotLoader)
</script>
Проблема: я получаю эту ошибку 500:
require is not defined in ES module scope, you can use import instead This file is being treated as an ES module because it has a '.js' file extension and '/Users/me/projects/my-nuxt-app/node_modules/vue3-spinner/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
Что я делаю не так?





Вы должны убедиться, что этот плагин работает только на стороне клиента. В противном случае вы получите ошибку.
<script setup>
import { DotLoader } from "vue3-spinner"
</script>
<template>
<div>
<ClientOnly>
<DotLoader />
</ClientOnly>
</div>
</template>
<style scoped lang = "css"></style>~/plugins/spinner.client.js
import vue3Spinner from 'vue3-spinner'
export default defineNuxtPlugin( ( nuxtApp ) => {
nuxtApp.vueApp.use( vue3Spinner )
} )Я создал демонстрационный пример здесь. https://stackblitz.com/edit/nuxt-starter-qfccjy?file=plugins/spinner.client.js
Надеюсь, это поможет вам.