UNPKG

vue-docs

Version:
49 lines (42 loc) 1.51 kB
import md2vue from './md2vue' import logger from './logger' import webpack from 'webpack' import { existsSync } from 'fs' import merge from 'webpack-merge' import createServer from './server' import packageJson from '../package' import { resolve, join, isAbsolute } from 'path' import buildConfig from './server/webpack.build.conf' let args, action, cwd, config, configFile args = process.argv.slice(2) action = args.shift() cwd = process.cwd() configFile = resolve(join(cwd, args.length ? args.shift() : './docs.conf.js')) config = { port: 8888, webpack: {}, md: { dir: cwd, exclude: null }, vue: { dir: join(cwd, 'build') } } if (existsSync(configFile)) { config = Object.assign({}, config, require(configFile)) } config.md.dir = isAbsolute(config.md.dir) ? config.md.dir : resolve(join(cwd, config.md.dir)) config.vue.dir = isAbsolute(config.vue.dir) ? config.vue.dir : resolve(join(cwd, config.vue.dir)) if (action === 'start') { logger.info(`Vue-docs v${packageJson.version} server started at http://0.0.0.0:${config.port}`) logger.info(`vue file directory at ${config.vue.dir}`) logger.info(`markdown file directory at ${config.md.dir}`) md2vue(config.md.dir, config.md) createServer(config.webpack).listen(config.port) } else if (action === 'build') { webpack(merge(buildConfig, config.webpack, { output: { path: config.vue.dir } }), (err, stats) => { if (err) { console.log(err) } }) }