Wed Aug 07 2019
Copied to clipboard! Copy reply
  • 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')