text: const path = require('path')
  const HtmlWebpackPlugin = require('html-webpack-plugin')
  const InlineManifestWebpackPlugin = require('inline-manifest-webpack-plugin')
  const webpack = require('webpack')
  
  module.exports = {
    entry: {
      main: 'docs/main.js',
      libs: [
        'vue',
        'vue-router',
        'prismjs',
        'vue-material'
      ],
      resource: [
        'prismjs/themes/prism-tomorrow.css',
        'docs/fonts/iconfont.css'
      ],
      vendor: [
        'docs/components/App.vue',
        'docs/components/CateView.vue',
        'docs/components/DocPreview.vue',
        'docs/components/Navigator.vue',
        'docs/components/RootFrame.vue'
      ]
    },
    output: {
      path: path.resolve(__dirname, '../dist'),
      filename: '[name].[hash:8].bundle.js',
      chunkFilename: '[name].[chunkhash:8].js'
    },
    module: {
      rules: [
        {
          test: /\.vue$/,
          use: ['vue-loader', 'eslint-loader'],
          exclude: [/_cache/]
        },
        {
          test: /\.js$/,
          use: ['babel-loader', 'eslint-loader'],
          exclude: [/node_modules/, /md/]
        },
        {
          test: /\.md$/,
          use: ['vue-markdown-loader'],
          exclude: [/node_modules/]
        },
        {
          test: /\.css$/,
          use: ['style-loader', 'css-loader']
        },
        {
          test: /\.styl$/,
          use: ['style-loader', 'css-loader', 'stylus-loader']
        },
        {
          test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
          use: ['url-loader']
        },
        {
          test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
          use: ['url-loader']
        }
      ]
    },
    resolve: {
      alias: {
        docs: path.resolve(__dirname, '../docs')
      }
    },
    plugins: [
      new webpack.HashedModuleIdsPlugin(),
      new HtmlWebpackPlugin({
        template: path.resolve(__dirname, '../docs/template/index.html'),
        chunks: ['libs', 'vendor', 'resource', 'main']
      }),
      new webpack.optimize.CommonsChunkPlugin({
        names: ['vendor', 'libs', 'resource', 'manifest'],
        minChunks: Infinity
      }),
      new InlineManifestWebpackPlugin({
        name: 'webpackManifest'
      })
    ]
  }
  