@sum.cumo/nuxt-custom-route-folder

Module to automatically add nuxt routes for specified files in the nuxt project.

Usage no npm install needed!

<script type="module">
  import sumCumoNuxtCustomRouteFolder from 'https://cdn.skypack.dev/@sum.cumo/nuxt-custom-route-folder';
</script>

README

@sum.cumo/nuxt-custom-route-folder

Module to automatically add nuxt routes for specified files in the nuxt project.

install

npm install @sum.cumo/nuxt-custom-route-folder

use within another nuxt module

import createCustomRoutes from '@sum.cumo/nuxt-custom-route-folder'

export default function MyModule() {
  return createCustomRoutes({
    nuxt: this.nuxt,
    glob: 'myCustomFolder/**/*.vue',
  })
}

Given we have a component myCustomFolder/foo.vue, it will be added as a myCustomFolder/foo route to nuxt routes.

configuration

nuxt

When used as a library in another nuxt module, this needs to be the current instance of nuxt

glob

A minimatch pattern specifying all files that should create a new route.

transform(contents, route)

A transformer function that can be used to manipulate or wrap the contents of a file found by the glob.

Its recommended to prefer custom webpack loaders over this config

import createCustomRoutes from '@sum.cumo/nuxt-custom-route-folder'

export default function MyModule() {
  return createCustomRoutes({
    nuxt: this.nuxt,
    glob: 'markdown/**/*.md',
    transform(content) {
      return someMarkdownToVueMagic(content)
    },
  })
}

transformExt

default: 'js'

Specify the file extension with which the result of the transform is being stored. This is especially relevant to control which webpack loaders are applied to the transformed file.

priority

default: 0

When the module is used for different custom folders and multiple routes are created using the same path, the one with a higher priority will take precedence over the one with a lower priority.

mapRouteName(basePath, component)

Customize the name that is created for each generated route.

mapRoutePath(path)

Customize the path of each generated route.

This can be useful when using a different path then the folder name or for prefixing.

filter(component)

Can be used to additionally blacklist components.

Prefer using a more specific glob over this.

srcDir

default: srcDir from nuxt.options

the source directory of the nuxt application, use as a base for the given glob.

watch

default: dev from nuxt.options

whether or not future file changes should cause a rebuild of the routes.