[
  {
    "path": ".babelrc",
    "content": "{\n  \"presets\": [\"es2015\", \"stage-2\"],\n  \"plugins\": [\"transform-runtime\"],\n  \"comments\": false\n}\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n\n# Standard to msysgit\n*.doc\t diff=astextplain\n*.DOC\t diff=astextplain\n*.docx diff=astextplain\n*.DOCX diff=astextplain\n*.dot  diff=astextplain\n*.DOT  diff=astextplain\n*.pdf  diff=astextplain\n*.PDF\t diff=astextplain\n*.rtf\t diff=astextplain\n*.RTF\t diff=astextplain\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nnode_modules/\ndist/\nnpm-debug.log\n"
  },
  {
    "path": "README.md",
    "content": "# vue-cli多页面应用\n> A Vue.js project\n\n### 文章地址：http://www.cnblogs.com/fengyuqing/p/vue_cli_webpack.html\n\n## Build Setup\n\n``` bash\n# install dependencies\nnpm install\n\n# serve with hot reload at localhost:8080\nnpm run dev\n\n# build for production with minification\nnpm run build\n```\n#### 针对在webstorm里面不能hot reload的问题大家可以按如下步骤设置一下就行：\n> Please try turning 'Safe write' option ( Settings | Appearance & Behavior | System Settings | Use \"safe write\" (save changes to temporary file first)) off\n\nFor detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).\n"
  },
  {
    "path": "build/build.js",
    "content": "// https://github.com/shelljs/shelljs\nrequire('shelljs/global')\nenv.NODE_ENV = 'production'\n\nvar path = require('path')\nvar config = require('../config')\nvar ora = require('ora')\nvar webpack = require('webpack')\nvar webpackConfig = require('./webpack.prod.conf')\n\nconsole.log(\n  '  Tip:\\n' +\n  '  Built files are meant to be served over an HTTP server.\\n' +\n  '  Opening index.html over file:// won\\'t work.\\n'\n)\n\nvar spinner = ora('building for production...')\nspinner.start()\n\nvar assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)\nrm('-rf', assetsPath)\nmkdir('-p', assetsPath)\ncp('-R', 'static/*', assetsPath)\n\nwebpack(webpackConfig, function (err, stats) {\n  spinner.stop()\n  if (err) throw err\n  process.stdout.write(stats.toString({\n    colors: true,\n    modules: false,\n    children: false,\n    chunks: false,\n    chunkModules: false\n  }) + '\\n')\n})\n"
  },
  {
    "path": "build/dev-client.js",
    "content": "/* eslint-disable */\nrequire('eventsource-polyfill')\nvar hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')\n\nhotClient.subscribe(function (event) {\n  if (event.action === 'reload') {\n    window.location.reload()\n  }\n})\n"
  },
  {
    "path": "build/dev-server.js",
    "content": "var config = require('../config')\nif (!process.env.NODE_ENV) process.env.NODE_ENV = config.dev.env\nvar path = require('path')\nvar express = require('express')\nvar webpack = require('webpack')\nvar opn = require('opn')\nvar proxyMiddleware = require('http-proxy-middleware')\nvar webpackConfig = require('./webpack.dev.conf')\n\n// default port where dev server listens for incoming traffic\nvar port = process.env.PORT || config.dev.port\n// Define HTTP proxies to your custom API backend\n// https://github.com/chimurai/http-proxy-middleware\nvar proxyTable = config.dev.proxyTable\n\nvar app = express()\nvar compiler = webpack(webpackConfig)\n\nvar devMiddleware = require('webpack-dev-middleware')(compiler, {\n  publicPath: webpackConfig.output.publicPath,\n  stats: {\n    colors: true,\n    chunks: false\n  }\n})\n\nvar hotMiddleware = require('webpack-hot-middleware')(compiler)\n// force page reload when html-webpack-plugin template changes\ncompiler.plugin('compilation', function (compilation) {\n  compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {\n    hotMiddleware.publish({ action: 'reload' })\n    cb()\n  })\n})\n\n// proxy api requests\nObject.keys(proxyTable).forEach(function (context) {\n  var options = proxyTable[context]\n  if (typeof options === 'string') {\n    options = { target: options }\n  }\n  app.use(proxyMiddleware(context, options))\n})\n\n// handle fallback for HTML5 history API\napp.use(require('connect-history-api-fallback')())\n\n// serve webpack bundle output\napp.use(devMiddleware)\n\n// enable hot-reload and state-preserving\n// compilation error display\napp.use(hotMiddleware)\n\n// serve pure static assets\nvar staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)\napp.use(staticPath, express.static('./static'))\n\napp.get('/', function (req, res) {\n  res.send('Hello world!');\n});\n\nmodule.exports = app.listen(port, function (err) {\n  if (err) {\n    console.log(err)\n    return\n  }\n  var uri = 'http://localhost:' + port\n  console.log('Listening at ' + uri + '\\n')\n  opn(uri)\n})\n"
  },
  {
    "path": "build/utils.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\n\nexports.assetsPath = function (_path) {\n  var assetsSubDirectory = process.env.NODE_ENV === 'production'\n    ? config.build.assetsSubDirectory\n    : config.dev.assetsSubDirectory\n  return path.posix.join(assetsSubDirectory, _path)\n}\n\nexports.cssLoaders = function (options) {\n  options = options || {}\n  // generate loader string to be used with extract text plugin\n  function generateLoaders (loaders) {\n    var sourceLoader = loaders.map(function (loader) {\n      var extraParamChar\n      if (/\\?/.test(loader)) {\n        loader = loader.replace(/\\?/, '-loader?')\n        extraParamChar = '&'\n      } else {\n        loader = loader + '-loader'\n        extraParamChar = '?'\n      }\n      return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '')\n    }).join('!')\n\n    // Extract CSS when that option is specified\n    // (which is the case during production build)\n    if (options.extract) {\n      return ExtractTextPlugin.extract('vue-style-loader', sourceLoader)\n    } else {\n      return ['vue-style-loader', sourceLoader].join('!')\n    }\n  }\n\n  // http://vuejs.github.io/vue-loader/configurations/extract-css.html\n  return {\n    css: generateLoaders(['css']),\n    postcss: generateLoaders(['css']),\n    less: generateLoaders(['css', 'less']),\n    sass: generateLoaders(['css', 'sass?indentedSyntax']),\n    scss: generateLoaders(['css', 'sass']),\n    stylus: generateLoaders(['css', 'stylus']),\n    styl: generateLoaders(['css', 'stylus'])\n  }\n}\n\n// Generate loaders for standalone style files (outside of .vue)\nexports.styleLoaders = function (options) {\n  var output = []\n  var loaders = exports.cssLoaders(options)\n  for (var extension in loaders) {\n    var loader = loaders[extension]\n    output.push({\n      test: new RegExp('\\\\.' + extension + '$'),\n      loader: loader\n    })\n  }\n  return output\n}\n"
  },
  {
    "path": "build/webpack.base.conf.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar utils = require('./utils')\nvar projectRoot = path.resolve(__dirname, '../')\nvar glob = require('glob');\nvar entries = getEntry(['./src/module/*.js', './src/module/**/*.js']); // 获得入口js文件\n\nvar env = process.env.NODE_ENV\n// check env & config/index.js to decide weither to enable CSS Sourcemaps for the\n// various preprocessor loaders added to vue-loader at the end of this file\nvar cssSourceMapDev = (env === 'development' && config.dev.cssSourceMap)\nvar cssSourceMapProd = (env === 'production' && config.build.productionSourceMap)\nvar useCssSourceMap = cssSourceMapDev || cssSourceMapProd\n\nmodule.exports = {\n  entry: entries,\n  output: {\n    path: config.build.assetsRoot,\n    publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath,\n    filename: '[name].js'\n  },\n  resolve: {\n    extensions: ['', '.js', '.vue'],\n    fallback: [path.join(__dirname, '../node_modules')],\n    alias: {\n      'vue$': 'vue/dist/vue',\n      'src': path.resolve(__dirname, '../src'),\n      'common': path.resolve(__dirname, '../src/common'),\n      'components': path.resolve(__dirname, '../src/components')\n    }\n  },\n  resolveLoader: {\n    fallback: [path.join(__dirname, '../node_modules')]\n  },\n  module: {\n    loaders: [{\n        test: /\\.vue$/,\n        loader: 'vue'\n      },\n      {\n        test: /\\.js$/,\n        loader: 'babel',\n        include: projectRoot,\n        exclude: /node_modules/\n      },\n      {\n        test: /\\.json$/,\n        loader: 'json'\n      },\n      {\n        test: /\\.(png|jpe?g|gif|svg)(\\?.*)?$/,\n        loader: 'url',\n        query: {\n          limit: 10000,\n          name: utils.assetsPath('img/[name].[hash:7].[ext]')\n        }\n      },\n      {\n        test: /\\.(woff2?|eot|ttf|otf)(\\?.*)?$/,\n        loader: 'url',\n        query: {\n          limit: 10000,\n          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')\n        }\n      }\n    ]\n  },\n  vue: {\n    loaders: utils.cssLoaders({\n      sourceMap: useCssSourceMap\n    }),\n    postcss: [\n      require('autoprefixer')({\n        browsers: ['last 2 versions']\n      })\n    ]\n  }\n}\n\nfunction getEntry(globPath) {\n  var entries = {},\n    basename, tmp, pathname;\n  if (typeof (globPath) != \"object\") {\n    globPath = [globPath]\n  }\n  globPath.forEach((itemPath) => {\n    glob.sync(itemPath).forEach(function (entry) {\n      basename = path.basename(entry, path.extname(entry));\n      if (entry.split('/').length > 4) {\n        tmp = entry.split('/').splice(-3);\n        pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径\n        entries[pathname] = entry;\n      } else {\n        entries[basename] = entry;\n      }\n    });\n  });\n  return entries;\n}\n"
  },
  {
    "path": "build/webpack.dev.conf.js",
    "content": "var path = require('path');\nvar config = require('../config')\nvar webpack = require('webpack')\nvar merge = require('webpack-merge')\nvar utils = require('./utils')\nvar baseWebpackConfig = require('./webpack.base.conf')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\nvar glob = require('glob')\n// add hot-reload related code to entry chunks\nObject.keys(baseWebpackConfig.entry).forEach(function (name) {\n  baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])\n})\nmodule.exports = merge(baseWebpackConfig, {\n  module: {\n    loaders: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })\n  },\n  // eval-source-map is faster for development\n  devtool: '#eval-source-map',\n  plugins: [\n    new webpack.DefinePlugin({\n      'process.env': config.dev.env\n    }),\n    // https://github.com/glenjamin/webpack-hot-middleware#installation--usage\n    new webpack.optimize.OccurenceOrderPlugin(),\n    new webpack.HotModuleReplacementPlugin(),\n    new webpack.NoErrorsPlugin()\n  ]\n})\n\nfunction getEntry(globPath) {\n  var entries = {},\n    basename, tmp, pathname;\n  if (typeof (globPath) != \"object\") {\n    globPath = [globPath]\n  }\n  globPath.forEach((itemPath) => {\n    glob.sync(itemPath).forEach(function (entry) {\n      basename = path.basename(entry, path.extname(entry));\n      if (entry.split('/').length > 4) {\n        tmp = entry.split('/').splice(-3);\n        pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径\n        entries[pathname] = entry;\n      } else {\n        entries[basename] = entry;\n      }\n    });\n  });\n  return entries;\n}\n\nvar pages = getEntry(['./src/module/*.html','./src/module/**/*.html']);\n\nfor (var pathname in pages) {\n  // 配置生成的html文件，定义路径等\n  var conf = {\n    filename: pathname + '.html',\n    template: pages[pathname],   // 模板路径\n    inject: true,              // js插入位置\n    // necessary to consistently work with multiple chunks via CommonsChunkPlugin\n    chunksSortMode: 'dependency'\n\n  };\n\n  if (pathname in module.exports.entry) {\n    conf.chunks = ['manifest', 'vendor', pathname];\n    conf.hash = true;\n  }\n\n  module.exports.plugins.push(new HtmlWebpackPlugin(conf));\n}\n"
  },
  {
    "path": "build/webpack.prod.conf.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar utils = require('./utils')\nvar webpack = require('webpack')\nvar merge = require('webpack-merge')\nvar baseWebpackConfig = require('./webpack.base.conf')\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\nvar CleanPlugin = require('clean-webpack-plugin')//webpack插件，用于清除目录文件\nvar glob = require('glob');\nvar env = config.build.env\n\nvar webpackConfig = merge(baseWebpackConfig, {\n  module: {\n    loaders: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true })\n  },\n  devtool: config.build.productionSourceMap ? '#source-map' : false,\n  output: {\n    path: config.build.assetsRoot,\n    filename: utils.assetsPath('js/[name].[chunkhash].js'),\n    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')\n  },\n  vue: {\n    loaders: utils.cssLoaders({\n      sourceMap: config.build.productionSourceMap,\n      extract: true\n    })\n  },\n  plugins: [\n    // http://vuejs.github.io/vue-loader/workflow/production.html\n    new webpack.DefinePlugin({\n      'process.env': env\n    }),\n    new webpack.optimize.UglifyJsPlugin({\n      compress: {\n        warnings: false\n      }\n    }),\n    new CleanPlugin(['../dist']), //清空生成目录\n    new webpack.optimize.OccurenceOrderPlugin(),\n    // extract css into its own file\n    new ExtractTextPlugin(utils.assetsPath('css/[name].[contenthash].css')),\n    // generate dist index.html with correct asset hash for caching.\n    // you can customize output by editing /index.html\n    // see https://github.com/ampedandwired/html-webpack-plugin\n    // split vendor js into its own file\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'vendor',\n      minChunks: function (module, count) {\n        // any required modules inside node_modules are extracted to vendor\n        return (\n          module.resource &&\n          /\\.js$/.test(module.resource) &&\n          module.resource.indexOf(\n            path.join(__dirname, '../node_modules')\n          ) === 0\n        )\n      }\n    }),\n    // extract webpack runtime and module manifest to its own file in order to\n    // prevent vendor hash from being updated whenever app bundle is updated\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'manifest',\n      chunks: ['vendor']\n    })\n  ]\n})\n\nif (config.build.productionGzip) {\n  var CompressionWebpackPlugin = require('compression-webpack-plugin')\n\n  webpackConfig.plugins.push(\n    new CompressionWebpackPlugin({\n      asset: '[path].gz[query]',\n      algorithm: 'gzip',\n      test: new RegExp(\n        '\\\\.(' +\n        config.build.productionGzipExtensions.join('|') +\n        ')$'\n      ),\n      threshold: 10240,\n      minRatio: 0.8\n    })\n  )\n}\n\nmodule.exports = webpackConfig\n\nfunction getEntry(globPath) {\n  var entries = {},\n    basename, tmp, pathname;\n  if (typeof (globPath) != \"object\") {\n    globPath = [globPath]\n  }\n  globPath.forEach((itemPath) => {\n    glob.sync(itemPath).forEach(function (entry) {\n      basename = path.basename(entry, path.extname(entry));\n      if (entry.split('/').length > 4) {\n        tmp = entry.split('/').splice(-3);\n        pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径\n        entries[pathname] = entry;\n      } else {\n        entries[basename] = entry;\n      }\n    });\n  });\n  return entries;\n}\n\nvar pages = getEntry(['./src/module/*.html','./src/module/**/*.html']);\n\nfor (var pathname in pages) {\n  // 配置生成的html文件，定义路径等\n  var conf = {\n    filename: pathname + '.html',\n    template: pages[pathname],   // 模板路径\n    inject: true,              // js插入位置\n    // necessary to consistently work with multiple chunks via CommonsChunkPlugin\n    chunksSortMode: 'dependency'\n  };\n\n  if (pathname in module.exports.entry) {\n    conf.chunks = ['manifest', 'vendor', pathname];\n    conf.hash = true;\n  }\n\n  module.exports.plugins.push(new HtmlWebpackPlugin(conf));\n}\n"
  },
  {
    "path": "config/dev.env.js",
    "content": "var merge = require('webpack-merge')\nvar prodEnv = require('./prod.env')\n\nmodule.exports = merge(prodEnv, {\n  NODE_ENV: '\"development\"'\n})\n"
  },
  {
    "path": "config/index.js",
    "content": "// see http://vuejs-templates.github.io/webpack for documentation.\nvar path = require('path')\n\nmodule.exports = {\n  build: {\n    env: require('./prod.env'),\n    index: path.resolve(__dirname, '../dist/index.html'),\n    assetsRoot: path.resolve(__dirname, '../dist'),\n    assetsSubDirectory: 'static',\n    assetsPublicPath: '../',\n    productionSourceMap: true,\n    // Gzip off by default as many popular static hosts such as\n    // Surge or Netlify already gzip all static assets for you.\n    // Before setting to `true`, make sure to:\n    // npm install --save-dev compression-webpack-plugin\n    productionGzip: false,\n    productionGzipExtensions: ['js', 'css']\n  },\n  dev: {\n    env: require('./dev.env'),\n    port: 8080,\n    assetsSubDirectory: 'static',\n    assetsPublicPath: '/',\n    proxyTable: {},\n    // CSS Sourcemaps off by default because relative paths are \"buggy\"\n    // with this option, according to the CSS-Loader README\n    // (https://github.com/webpack/css-loader#sourcemaps)\n    // In our experience, they generally work as expected,\n    // just be aware of this issue when enabling this option.\n    cssSourceMap: false\n  }\n}\n"
  },
  {
    "path": "config/prod.env.js",
    "content": "module.exports = {\n  NODE_ENV: '\"production\"'\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"vue-multipage\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A Vue.js project\",\n  \"author\": \"breezefeng\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"node build/dev-server.js\",\n    \"build\": \"node build/build.js\"\n  },\n  \"dependencies\": {\n    \"vue\": \"^2.0.1\"\n  },\n  \"devDependencies\": {\n    \"autoprefixer\": \"^6.4.0\",\n    \"babel-core\": \"^6.0.0\",\n    \"babel-loader\": \"^6.0.0\",\n    \"babel-plugin-transform-runtime\": \"^6.0.0\",\n    \"babel-preset-es2015\": \"^6.0.0\",\n    \"babel-preset-stage-2\": \"^6.0.0\",\n    \"babel-register\": \"^6.0.0\",\n    \"clean-webpack-plugin\": \"^0.1.13\",\n    \"connect-history-api-fallback\": \"^1.1.0\",\n    \"css-loader\": \"^0.25.0\",\n    \"eventsource-polyfill\": \"^0.9.6\",\n    \"express\": \"^4.13.3\",\n    \"extract-text-webpack-plugin\": \"^1.0.1\",\n    \"file-loader\": \"^0.9.0\",\n    \"function-bind\": \"^1.0.2\",\n    \"glob\": \"^7.1.1\",\n    \"html-webpack-plugin\": \"^2.8.1\",\n    \"http-proxy-middleware\": \"^0.17.2\",\n    \"json-loader\": \"^0.5.4\",\n    \"opn\": \"^4.0.2\",\n    \"ora\": \"^0.3.0\",\n    \"shelljs\": \"^0.7.4\",\n    \"url-loader\": \"^0.5.7\",\n    \"vue-loader\": \"^9.4.0\",\n    \"vue-style-loader\": \"^1.0.0\",\n    \"webpack\": \"^1.13.2\",\n    \"webpack-dev-middleware\": \"^1.8.3\",\n    \"webpack-hot-middleware\": \"^2.12.2\",\n    \"webpack-merge\": \"^0.14.1\"\n  }\n}\n"
  },
  {
    "path": "src/common/css/reset.css",
    "content": "/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Change the default font family in all browsers (opinionated).\n * 2. Correct the line height in all browsers.\n * 3. Prevent adjustments of font size after orientation changes in\n *    IE on Windows Phone and in iOS.\n */\n\n/* Document\n   ========================================================================== */\n\nhtml {\n  font-family: sans-serif; /* 1 */\n  line-height: 1.15; /* 2 */\n  -ms-text-size-adjust: 100%; /* 3 */\n  -webkit-text-size-adjust: 100%; /* 3 */\n}\n\n/* Sections\n   ========================================================================== */\n\n/**\n * Remove the margin in all browsers (opinionated).\n */\n\nbody {\n  margin: 0;\n}\n\n/**\n * Add the correct display in IE 9-.\n */\n\narticle,\naside,\nfooter,\nheader,\nnav,\nsection {\n  display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n * 1. Add the correct display in IE.\n */\n\nfigcaption,\nfigure,\nmain { /* 1 */\n  display: block;\n}\n\n/**\n * Add the correct margin in IE 8.\n */\n\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n  box-sizing: content-box; /* 1 */\n  height: 0; /* 1 */\n  overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * 1. Remove the gray background on active links in IE 10.\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\n */\n\na {\n  background-color: transparent; /* 1 */\n  -webkit-text-decoration-skip: objects; /* 2 */\n}\n\n/**\n * Remove the outline on focused links when they are also active or hovered\n * in all browsers (opinionated).\n */\n\na:active,\na:hover {\n  outline-width: 0;\n}\n\n/**\n * 1. Remove the bottom border in Firefox 39-.\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n  border-bottom: none; /* 1 */\n  text-decoration: underline; /* 2 */\n  text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\n */\n\nb,\nstrong {\n  font-weight: inherit;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font style in Android 4.3-.\n */\n\ndfn {\n  font-style: italic;\n}\n\n/**\n * Add the correct background and color in IE 9-.\n */\n\nmark {\n  background-color: #ff0;\n  color: #000;\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\naudio,\nvideo {\n  display: inline-block;\n}\n\n/**\n * Add the correct display in iOS 4-7.\n */\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Remove the border on images inside links in IE 10-.\n */\n\nimg {\n  border-style: none;\n}\n\n/**\n * Hide the overflow in IE.\n */\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers (opinionated).\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: sans-serif; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n  overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n  text-transform: none;\n}\n\n/**\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n *    controls in Android 4.\n * 2. Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\nhtml [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; /* 2 */\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\n * Change the border, margin, and padding in all browsers (opinionated).\n */\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n *    `fieldset` elements in all browsers.\n */\n\nlegend {\n  box-sizing: border-box; /* 1 */\n  color: inherit; /* 2 */\n  display: table; /* 1 */\n  max-width: 100%; /* 1 */\n  padding: 0; /* 3 */\n  white-space: normal; /* 1 */\n}\n\n/**\n * 1. Add the correct display in IE 9-.\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n  display: inline-block; /* 1 */\n  vertical-align: baseline; /* 2 */\n}\n\n/**\n * Remove the default vertical scrollbar in IE.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10-.\n * 2. Remove the padding in IE 10-.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/* Interactive\n   ========================================================================== */\n\n/*\n * Add the correct display in IE 9-.\n * 1. Add the correct display in Edge, IE, and Firefox.\n */\n\ndetails, /* 1 */\nmenu {\n  display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n  display: list-item;\n}\n\n/* Scripting\n   ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\ncanvas {\n  display: inline-block;\n}\n\n/**\n * Add the correct display in IE.\n */\n\ntemplate {\n  display: none;\n}\n\n/* Hidden\n   ========================================================================== */\n\n/**\n * Add the correct display in IE 10-.\n */\n\n[hidden] {\n  display: none;\n}"
  },
  {
    "path": "src/components/Hello/Hello.vue",
    "content": "<template>\n  <div class=\"hello\">\n    <h1>{{ msg }}</h1>\n    <h2>Essential Links</h2>\n    <ul>\n      <li><a href=\"https://vuejs.org\" target=\"_blank\">Core Docs</a></li>\n      <li><a href=\"https://forum.vuejs.org\" target=\"_blank\">Forum</a></li>\n      <li><a href=\"https://gitter.im/vuejs/vue\" target=\"_blank\">Gitter Chat</a></li>\n      <li><a href=\"https://twitter.com/vuejs\" target=\"_blank\">Twitter</a></li>\n      <br>\n      <li><a href=\"http://vuejs-templates.github.io/webpack/\" target=\"_blank\">Docs for This Template</a></li>\n    </ul>\n    <h2>Ecosystem</h2>\n    <ul>\n      <li><a href=\"http://router.vuejs.org/\" target=\"_blank\">vue-router</a></li>\n      <li><a href=\"http://vuex.vuejs.org/\" target=\"_blank\">vuex</a></li>\n      <li><a href=\"http://vue-loader.vuejs.org/\" target=\"_blank\">vue-loader</a></li>\n      <li><a href=\"https://github.com/vuejs/awesome-vue\" target=\"_blank\">awesome-vue</a></li>\n    </ul>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'hello',\n  data () {\n    return {\n      msg: 'Welcome to Your Vue.js App'\n    }\n  }\n}\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\nh1, h2 {\n  font-weight: normal;\n}\n\nul {\n  list-style-type: none;\n  padding: 0;\n}\n\nli {\n  display: inline-block;\n  margin: 0 10px;\n}\n\na {\n  color: #42b983;\n}\n</style>\n"
  },
  {
    "path": "src/module/detail/App.vue",
    "content": "<template>\n  <div id=\"app\">\n    <img src=\"./images/logo.png\">\n    <div>详情内容</div>\n  </div>\n</template>\n\n<script>\n  import 'common/css/reset.css';\n  import Hello from 'components/Hello/Hello'\n\n  export default {\n    name: 'app',\n    components: {\n      Hello\n    }\n  }\n</script>\n\n<style>\n  #app {\n    font-family: 'Avenir', Helvetica, Arial, sans-serif;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    text-align: center;\n    color: #2c3e50;\n    margin-top: 60px;\n  }\n</style>\n"
  },
  {
    "path": "src/module/detail/detail.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>detail</title>\n</head>\n<body>\n<div id=\"app\"></div>\n<!-- built files will be auto injected -->\n</body>\n</html>\n"
  },
  {
    "path": "src/module/detail/detail.js",
    "content": "import Vue from 'vue'\nimport App from './App'\n\n/* eslint-disable no-new */\nnew Vue({\n  el: '#app',\n  template: '<App/>',\n  components: { App }\n})\n"
  },
  {
    "path": "src/module/index/App.vue",
    "content": "<template>\n  <div id=\"app\">\n    <img src=\"./images/logo.png\">\n    <hello></hello>\n  </div>\n</template>\n\n<script>\n  import 'common/css/reset.css';\n  import Hello from 'components/Hello/Hello'\n\n  export default {\n    name: 'app',\n    components: {\n      Hello\n    }\n  }\n</script>\n\n<style>\n  #app {\n    font-family: 'Avenir', Helvetica, Arial, sans-serif;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    text-align: center;\n    color: #2c3e50;\n    margin-top: 60px;\n  }\n</style>\n"
  },
  {
    "path": "src/module/index/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>vue-demo</title>\n</head>\n<body>\n<div id=\"app\"></div>\n<!-- built files will be auto injected -->\n</body>\n</html>\n"
  },
  {
    "path": "src/module/index/index.js",
    "content": "import Vue from 'vue'\nimport App from './App'\n\n/* eslint-disable no-new */\nnew Vue({\n  el: '#app',\n  template: '<App/>',\n  components: { App }\n})\n"
  },
  {
    "path": "src/module/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title></title>\n</head>\n<body>\n    <script>\n        location.href = \"module/index.html\";\n    </script>\n</body>\n</html>"
  },
  {
    "path": "src/module/index.js",
    "content": ""
  },
  {
    "path": "static/.gitkeep",
    "content": ""
  }
]