constructor (options = {}) {
    this.isProd = process.env.NODE_ENV === 'production'
    this.options = options
    this.sourceDir = this.options.sourceDir || path.join(__dirname, 'docs.fallback')
    logger.debug('sourceDir', this.sourceDir)
    if (!fs.existsSync(this.sourceDir)) {
      logger.warn(`Source directory doesn't exist: ${chalk.yellow(this.sourceDir)}`)
    }

    this.vuepressDir = path.resolve(this.sourceDir, '.vuepress')
    this.libDir = path.join(__dirname, '../')
  }
Instantiate the app context with a new API

@param {string} sourceDir
@param {{
 plugins: pluginsConfig,
 theme: themeNameConfig
 temp: string
}} options