Hello everyone. I'm trying to learn how to create a module. According to the documentation recipe, it can be (I only changed the name of the composable):
import { defineNuxtModule, addImports, createResolver } from '@nuxt/kit';
export default defineNuxtModule({
setup(options, nuxt) {
const resolver = createResolver(import.meta.url);
addImports({
name: 'useCMS',
as: 'useCMS',
from: resolver.resolve('runtime/composables/useCMS'),
});
},
});
The docs do not provide a composable as an example, but I would assume it is the same as any nuxt composable. So this one should work:
runtime/composables/useCMS.ts
export function useCMS() {
return {
title: 'Title of the website',
navBar: false,
columns: 5,
};
}
In the play ground, I changed app.vue to the following:
<template>
<div>
{{ title }}
</div>
</template>
<script setup>
const { title } = useCMS();
</script>
But I get an error: 500 useCMS is not defined
I created a new nuxt project and the same useCMS composable worked.
I believe this might be a problem with the playground, even when removing the module from the playground config, and writing useCMS in the composable folder I get the same error.
Here is a stackblitz reproduction of the issue:
https://stackblitz.com/edit/github-budsam?file=src/module.ts
Is this a bug or am I doing something wrong?