• #Feature Folder Pattern in nuxt3

    import { readdirSync } from 'fs'
    import { defineNuxtModule, addComponentsDir, addImportsDir, createResolver } from '@nuxt/kit'
    
    const featureFolder = 'features'
    
    export default defineNuxtModule({
      setup() {
        const resolver = createResolver(import.meta.url)
    
        readdirSync(featureFolder).forEach((feature) => {
          addComponentsDir({
            path: resolver.resolve(`../${featureFolder}/${feature}/components`),
            prefix: feature,
          })
    
          addImportsDir(resolver.resolve(`../${featureFolder}/${feature}/composables`))
    
          // we don't want feature utils to be imported in the app
          // addImportsDir(resolver.resolve(`../${featureFolder}/${feature}/utils`))
        })
      },
    })