- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
const { relative, resolve } = require('path')
const { existsSync } = require('fs')
const logger = require('./logger')
module.exports = function (moduleOptions) {
console.log('------ R O U T E R ------')
const defaultOptions = {
path: this.options.srcDir,
fileName: 'router.js',
keepDefaultRouter: false
}
const options = {
...defaultOptions,
...this.options['router-module'],
...this.options.routerModule,
...moduleOptions
}
const routerFilePath = resolve(options.path, options.fileName)
// Check if router file path is defined
if (!existsSync(routerFilePath)) {
logger.warn(`No \`${options.fileName}\` file found in \`${options.path}\`.`)
return
}
// Add plugin to import router file path as the main template for routing
console.log('__|__')
console.log(relative(this.options.buildDir, routerFilePath))
this.addPlugin({
src: resolve(__dirname, 'plugin.js'),
fileName: 'router.js',
options: {
routerFilePath: routerFilePath,//relative(this.options.buildDir, routerFilePath).replace(/\/+|\\+/g, '/'),
keepDefaultRouter: options.keepDefaultRouter
}
})
// Disable parsing `pages/`
if (!options.keepDefaultRouter) {
return this.nuxt.hook('generate:before', () => {
console.log('--- keepdefaultRouter: false')
this.nuxt.options.generate.createRoutes = () => {
console.log('.....returning []')
return []
}
})
}
console.log('--*-*-*--- never made it here :(')
// Put default router as .nuxt/defaultRouter.js
let defaultRouter
try {
defaultRouter = require.resolve('@nuxt/vue-app/template/router')
console.log('---- default...')
console.log(defaultRouter)
} catch (err) {
/* istanbul ignore next */
console.log('--- catch ----')
defaultRouter = require.resolve('nuxt/lib/app/router')
}
this.addTemplate({
fileName: 'defaultRouter.js',
src: defaultRouter
})
}
module.exports.meta = require('../package.json')