Soy bastante nuevo en Nuxtjs, así que hice un proyecto de prueba cuyo propósito es simplemente (por supuesto) probar las funcionalidades de Nuxtjs.
Actualmente estoy tratando de crear un módulo personalizado simple: afaik, un módulo es básicamente un contenedor alrededor de una biblioteca/complemento vou/js, algo así como una integración de alto nivel utilizada para exponer configuraciones sobre cómo se importa y usa la biblioteca/complemento subyacente en la aplicación Nuxt.
Así que estoy probando con un módulo simple que declara algunas clases simples de js que usaré en mi aplicación, por ejemplo, Order y Product , y eso es lo que obtuve:
pages the-page.vue modules classes index.js order.js const path = require('path') export default function (moduleOptions) { const { nuxt } = this // add the debug plugin this.addPlugin({ src: path.resolve(__dirname, 'order.js'), }) } class Order { constructor(id) { this.id = id; console.log('created order #' + this.id); } } export {Order}; export default { // ... buildModules: [ // ... '~/modules/classes' ], // ... } <script> export default { name: 'ThePage', data () { return { } }, methods: { createOrder () { const order = new Order(123) } } } </script>Mi clase definida todavía no se importa en mis páginas:
/app/pages/the-page.vue 18:13 error 'order' is assigned a value but never used no-unused-vars 18:25 error 'Order' is not defined no-undefProbablemente me estoy perdiendo algo sobre el uso y/o la implementación de los módulos, pero cada tutorial que encontré comienza con escenarios demasiado complejos, y como estoy comenzando con Nuxtjs, necesito algo más fácil de implementar.
Ok, descubrí que estaba equivocado sobre cómo se pretendía que funcionaran los módulos de NuxtJs y estaba tratando de hacer algo para lo que no estaban destinados.
Los módulos de Nuxt no pueden importar clases js en cada componente de la aplicación como quería hacer, simplemente "agregan una propiedad" a la instancia de la aplicación principal a la que se puede acceder a través this.$<something> , como por ejemplo, ya puede hacerlo de manera simple Vue con Vue Router o los complementos de la tienda Vuex que dan acceso a las propiedades this.$router y this.$store .
Los módulos de NuxtJs simplemente envuelven complementos simples y exponen opciones de configuración para realizar.