├── .gitignore
├── bin
├── step06
├── step04
├── step02
├── step01
├── step08
├── step11
├── step12
├── step07
├── step03
└── step09
├── style.css
├── images
└── image.jpeg
├── .babelrc
├── dist
├── 5951fc2b025d1fb7f4aa912568913605.jpeg
├── main.0e0dd6733f9464056656.css
└── main.0e0dd6733f9464056656.js
├── main.js
├── index.html
├── README.md
├── index.ejs
├── index_prod.html
├── title.vue
├── button.vue
├── app.vue
├── package.json
├── webpack.prod.config.js
└── webpack.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/bin/step06:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | webpack --progress --hide-modules
--------------------------------------------------------------------------------
/bin/step04:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | #运行webpack-dev-server
3 | npm run dev
4 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | #app{
2 | font-size:24px;
3 | color: #f50;
4 | }
5 |
--------------------------------------------------------------------------------
/images/image.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangchunlin/webpack_tutorial/HEAD/images/image.jpeg
--------------------------------------------------------------------------------
/bin/step02:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | #安装vue
3 | npm install vue --save --registry=https://registry.npm.taobao.org
4 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015"],
3 | "plugins": ["transform-runtime"],
4 | "comments": false
5 | }
--------------------------------------------------------------------------------
/bin/step01:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | #安装webpack
3 | npm install webpack@3.11.0 --save-dev --registry=https://registry.npm.taobao.org
4 |
--------------------------------------------------------------------------------
/bin/step08:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | npm install extract-text-webpack-plugin@3.0.2 --save-dev --registry=https://registry.npm.taobao.org
3 |
--------------------------------------------------------------------------------
/dist/5951fc2b025d1fb7f4aa912568913605.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangchunlin/webpack_tutorial/HEAD/dist/5951fc2b025d1fb7f4aa912568913605.jpeg
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './app.vue';
3 |
4 | new Vue({
5 | el: '#app',
6 | render: h => h(App) //es6箭头函数
7 | });
--------------------------------------------------------------------------------
/bin/step11:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | npm install --save-dev url-loader --registry=https://registry.npm.taobao.org
3 | npm install --save-dev file-loader --registry=https://registry.npm.taobao.org
--------------------------------------------------------------------------------
/bin/step12:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | npm install --save-dev webpack-merge --registry=https://registry.npm.taobao.org
3 | npm install --save-dev html-webpack-plugin --registry=https://registry.npm.taobao.org
4 |
--------------------------------------------------------------------------------
/bin/step07:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | npm install css-loader@0.28.11 --save-dev --registry=https://registry.npm.taobao.org
3 | npm install style-loader@0.21.0 --save-dev --registry=https://registry.npm.taobao.org
4 |
--------------------------------------------------------------------------------
/dist/main.0e0dd6733f9464056656.css:
--------------------------------------------------------------------------------
1 |
2 | div[data-v-44be8f10]{
3 | color: #f60;
4 | font-size: 24px;
5 | }
6 |
7 | h1 a[data-v-7598ea07]{
8 | color: #3399ff;
9 | font-size: 24px;
10 | }
11 |
--------------------------------------------------------------------------------
/bin/step03:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | #安装webpack-dev-server和webpack-cli
3 | npm install webpack-dev-server@2.11.1 --save-dev --registry=https://registry.npm.taobao.org
4 | npm install webpack-cli@2.1.3 --save-dev --registry=https://registry.npm.taobao.org
5 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Webpack App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 来源:
2 | - [Vue.js 实战之工程篇](https://segmentfault.com/l/1500000009448189),使用和此教程一致的范例
3 | - 每一步一个提交,可以看git历史来学习和本地验证测试
4 |
5 | 内容:
6 | - 从无到有建立一个webpack项目
7 | - 安装 webpack 及相关的一系列 npm 模块和工具
8 | - 使用 webpack-dev-server 作为调试服务器
9 | - 最简单的 webpack 项目
10 | - webpack build
11 | - 编译css
12 | - 使用 ExtractTextPlugin 合并 css
13 | - vue单文件组件的支持
14 | - 对于图片文件的编译支持
15 | - 生产环境方式的build
16 |
--------------------------------------------------------------------------------
/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Webpack App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/index_prod.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Webpack App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/title.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
15 |
21 |
--------------------------------------------------------------------------------
/button.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
28 |
--------------------------------------------------------------------------------
/app.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Hello {{ name }}
4 |
5 |
点击按钮
6 |
7 |
8 |
9 |
10 |
11 |
31 |
37 |
--------------------------------------------------------------------------------
/bin/step09:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 | npm install --save-dev vue-loader@13.3.0 --registry=https://registry.npm.taobao.org
3 | npm install --save-dev vue-style-loader --registry=https://registry.npm.taobao.org
4 | npm install --save-dev vue-template-loader --registry=https://registry.npm.taobao.org
5 | npm install --save-dev vue-hot-reload-api --registry=https://registry.npm.taobao.org
6 | npm install --save-dev vue-template-compiler --registry=https://registry.npm.taobao.org
7 | npm install --save-dev babel --registry=https://registry.npm.taobao.org
8 | npm install --save-dev babel-loader --registry=https://registry.npm.taobao.org
9 | npm install --save-dev babel-core --registry=https://registry.npm.taobao.org
10 | npm install --save-dev babel-plugin-transform-runtime --registry=https://registry.npm.taobao.org
11 | npm install --save-dev babel-preset-es2015 --registry=https://registry.npm.taobao.org
12 | npm install --save-dev babel-runtime --registry=https://registry.npm.taobao.org
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo",
3 | "scripts": {
4 | "dev": "webpack-dev-server --open --config webpack.config.js",
5 | "build": "webpack --progress --hide-modules --config webpack.prod.config.js"
6 | },
7 | "devDependencies": {
8 | "babel": "^6.23.0",
9 | "babel-core": "^6.26.3",
10 | "babel-loader": "^7.1.4",
11 | "babel-plugin-transform-runtime": "^6.23.0",
12 | "babel-preset-es2015": "^6.24.1",
13 | "babel-runtime": "^6.26.0",
14 | "css-loader": "^3.5.0",
15 | "extract-text-webpack-plugin": "^3.0.2",
16 | "file-loader": "^1.1.11",
17 | "html-webpack-plugin": "^3.2.0",
18 | "style-loader": "^0.21.0",
19 | "url-loader": "^1.0.1",
20 | "vue-hot-reload-api": "^2.3.0",
21 | "vue-loader": "^13.3.0",
22 | "vue-style-loader": "^4.1.0",
23 | "vue-template-compiler": "^2.5.16",
24 | "vue-template-loader": "^0.4.1",
25 | "webpack": "^4.42.1",
26 | "webpack-cli": "^3.3.11",
27 | "webpack-dev-server": "^2.11.1",
28 | "webpack-merge": "^4.1.3"
29 | },
30 | "dependencies": {
31 | "vue": "^2.5.16"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/webpack.prod.config.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const HtmlWebpackPlugin = require('html-webpack-plugin');
3 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
4 | const merge = require('webpack-merge');
5 | const webpackBaseConfig = require('./webpack.config')
6 |
7 | webpackBaseConfig.plugins = [];
8 |
9 | module.exports = merge(webpackBaseConfig, {
10 | output: {
11 | publicPath: '/dist/',
12 | filename: '[name].[hash].js'
13 | },
14 | plugins: [
15 | new ExtractTextPlugin({
16 | filename: '[name].[hash].css',
17 | allChunks: true
18 | }),
19 | new webpack.DefinePlugin({
20 | 'process.env': {
21 | NODE_ENV: '"production"'
22 | }
23 | }),
24 | new webpack.optimize.UglifyJsPlugin({
25 | compress: {
26 | warnings: false
27 | }
28 | }),
29 | new HtmlWebpackPlugin({
30 | filename: '../index_prod.html',
31 | template: './index.ejs',
32 | inject: false
33 | })
34 | ]
35 | })
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
4 |
5 | const config = {
6 | entry : {
7 | main : "./main"
8 | },
9 | output : {
10 | path : path.join(__dirname,'./dist'),
11 | publicPath : '/dist/',
12 | filename : "main.js"
13 | },
14 | module:{
15 | rules: [
16 | {
17 | test:/\.vue$/,
18 | loader: 'vue-loader',
19 | options: {
20 | loaders: {
21 | css: ExtractTextPlugin.extract({
22 | use: 'css-loader',
23 | fallback: 'vue-style-loader'
24 | })
25 | }
26 | }
27 | },
28 | {
29 | test: /\.js$/,
30 | loader: 'babel-loader',
31 | exclude: /node_modules/
32 | },
33 | {
34 | test: /\.css$/,
35 | use: ExtractTextPlugin.extract({
36 | use: 'css-loader',
37 | fallback: 'style-loader'
38 | })
39 | },
40 | {
41 | test: /\.(gif|jpeg|jpg|png|woff|svg|eot|ttf)\??.*$/,
42 | loader: 'url-loader?limit=1024'
43 | }
44 | ]
45 | },
46 | plugins: [
47 | new ExtractTextPlugin('main.css')
48 | ]
49 | };
50 |
51 | module.exports = config;
52 |
--------------------------------------------------------------------------------
/dist/main.0e0dd6733f9464056656.js:
--------------------------------------------------------------------------------
1 | !function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=2)}([function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t,e,n,r,o,i){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var u="function"==typeof s?s.options:s;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=o);var l;if(i?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=r),l){var f=u.functional,d=f?u.render:u.beforeCreate;f?(u._injectStyles=l,u.render=function(t,e){return l.call(e),d(t,e)}):u.beforeCreate=d?[].concat(d,l):[l]}return{esModule:a,exports:s,options:u}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(3),i=r(o),a=n(7),s=r(a);new i.default({el:"#app",render:function(t){return t(s.default)}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t,n){function r(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function i(t){return!0===t}function a(t){return!1===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}function u(t){return"[object Object]"===_r.call(t)}function l(t){return"[object RegExp]"===_r.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}function m(t,e){return br.call(t,e)}function y(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function _(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function g(t,e){return t.bind(e)}function b(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function w(t,e){for(var n in e)t[n]=e[n];return t}function C(t){for(var e={},n=0;n-1)if(i&&!m(o,"default"))a=!1;else if(""===a||a===xr(t)){var c=nt(String,o.type);(c<0||s0&&(a=gt(a,(e||"")+"_"+n),_t(a[0])&&_t(u)&&(l[c]=M(u.text+a[0].text),a.shift()),l.push.apply(l,a)):s(a)?_t(u)?l[c]=M(u.text+a):""!==a&&l.push(M(a)):_t(a)&&_t(u)?l[c]=M(u.text+a.text):(i(t._isVList)&&o(a.tag)&&r(a.key)&&o(e)&&(a.key="__vlist"+e+"_"+n+"__"),l.push(a)));return l}function bt(t,e){return(t.__esModule||Jr&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function wt(t,e,n,r,o){var i=ro();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}function Ct(t,e,n){if(i(t.error)&&o(t.errorComp))return t.errorComp;if(o(t.resolved))return t.resolved;if(i(t.loading)&&o(t.loadingComp))return t.loadingComp;if(!o(t.contexts)){var a=t.contexts=[n],s=!0,u=function(){for(var t=0,e=a.length;tSo&&Ao[n].id>t.id;)n--;Ao.splice(n+1,0,t)}else Ao.push(t);ko||(ko=!0,ct(Ut))}}function Wt(t,e,n){Io.get=function(){return this[e][n]},Io.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Io)}function qt(t){t._watchers=[];var e=t.$options;e.props&&Kt(t,e.props),e.methods&&Yt(t,e.methods),e.data?Xt(t):F(t._data={},!0),e.computed&&Jt(t,e.computed),e.watch&&e.watch!==Hr&&te(t,e.watch)}function Kt(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];!t.$parent||L(!1);for(var i in e)!function(i){o.push(i);var a=Q(i,e,n,t);R(r,i,a),i in t||Wt(t,"_props",i)}(i);L(!0)}function Xt(t){var e=t.$options.data;e=t._data="function"==typeof e?Gt(e,t):e||{},u(e)||(e={});for(var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);o--;){var i=n[o];r&&m(r,i)||k(i)||Wt(t,"_data",i)}F(e,!0)}function Gt(t,e){j();try{return t.call(e,e)}catch(t){return rt(t,e,"data()"),{}}finally{I()}}function Jt(t,e){var n=t._computedWatchers=Object.create(null),r=Xr();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;r||(n[o]=new jo(t,a||$,$,Mo)),o in t||Zt(t,o,i)}}function Zt(t,e,n){var r=!Xr();"function"==typeof n?(Io.get=r?Qt(e):n,Io.set=$):(Io.get=n.get?r&&!1!==n.cache?Qt(e):n.get:$,Io.set=n.set?n.set:$),Object.defineProperty(t,e,Io)}function Qt(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),Yr.target&&e.depend(),e.value}}function Yt(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?$:Or(e[n],t)}function te(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o=0||n.indexOf(t[o])<0)&&r.push(t[o]);return r}return t}function Pe(t){this._init(t)}function Le(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=b(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}function Ne(t){t.mixin=function(t){return this.options=J(this.options,t),this}}function De(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name,a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=J(n.options,t),a.super=n,a.options.props&&Fe(a),a.options.computed&&Re(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Er.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=w({},a.options),o[r]=a,a}}function Fe(t){var e=t.options.props;for(var n in e)Wt(t.prototype,"_props",n)}function Re(t){var e=t.options.computed;for(var n in e)Zt(t.prototype,n,e[n])}function Ue(t){Er.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Ve(t){return t&&(t.Ctor.options.name||t.tag)}function Be(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function He(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=Ve(a.componentOptions);s&&!e(s)&&ze(n,i,r,o)}}}function ze(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,h(n,e)}function We(t){for(var e=t.data,n=t,r=t;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=qe(r.data,e));for(;o(n=n.parent);)n&&n.data&&(e=qe(e,n.data));return Ke(e.staticClass,e.class)}function qe(t,e){return{staticClass:Xe(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Ke(t,e){return o(t)||o(e)?Xe(t,Ge(e)):""}function Xe(t,e){return t?e?t+" "+e:t:e||""}function Ge(t){return Array.isArray(t)?Je(t):c(t)?Ze(t):"string"==typeof t?t:""}function Je(t){for(var e,n="",r=0,i=t.length;r-1?ri[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:ri[t]=/HTMLUnknownElement/.test(e.toString())}function tn(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function en(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function nn(t,e){return document.createElementNS(Yo[t],e)}function rn(t){return document.createTextNode(t)}function on(t){return document.createComment(t)}function an(t,e,n){t.insertBefore(e,n)}function sn(t,e){t.removeChild(e)}function cn(t,e){t.appendChild(e)}function un(t){return t.parentNode}function ln(t){return t.nextSibling}function fn(t){return t.tagName}function dn(t,e){t.textContent=e}function pn(t,e){t.setAttribute(e,"")}function vn(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?h(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}function hn(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&mn(t,e)||i(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&r(e.asyncFactory.error))}function mn(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||oi(r)&&oi(i)}function yn(t,e,n){var r,i,a={};for(r=e;r<=n;++r)i=t[r].key,o(i)&&(a[i]=r);return a}function _n(t,e){(t.data.directives||e.data.directives)&&gn(t,e)}function gn(t,e){var n,r,o,i=t===si,a=e===si,s=bn(t.data.directives,t.context),c=bn(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,Cn(o,"update",e,t),o.def&&o.def.componentUpdated&&l.push(o)):(Cn(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var f=function(){for(var n=0;n-1?xn(t,e,n):Xo(e)?Qo(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ko(e)?t.setAttribute(e,Qo(n)||"false"===n?"false":"true"):Jo(e)?Qo(n)?t.removeAttributeNS(Go,Zo(e)):t.setAttributeNS(Go,e,n):xn(t,e,n)}function xn(t,e,n){if(Qo(n))t.removeAttribute(e);else{if(Rr&&!Ur&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}function On(t,e){var n=e.elm,i=e.data,a=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=We(e),c=n._transitionClasses;o(c)&&(s=Xe(s,Ge(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}function kn(t){if(o(t[vi])){var e=Rr?"change":"input";t[e]=[].concat(t[vi],t[e]||[]),delete t[vi]}o(t[hi])&&(t.change=[].concat(t[hi],t.change||[]),delete t[hi])}function Tn(t,e,n){var r=Bo;return function o(){null!==t.apply(null,arguments)&&En(e,o,n,r)}}function Sn(t,e,n,r,o){e=st(e),n&&(e=Tn(e,t,r)),Bo.addEventListener(t,e,zr?{capture:r,passive:o}:r)}function En(t,e,n,r){(r||Bo).removeEventListener(t,e._withTask||e,n)}function jn(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};Bo=e.elm,kn(n),dt(n,o,Sn,En,e.context),Bo=void 0}}function In(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};o(c.__ob__)&&(c=e.data.domProps=w({},c));for(n in s)r(c[n])&&(a[n]="");for(n in c){if(i=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n){a._value=i;var u=r(i)?"":String(i);Mn(a,u)&&(a.value=u)}else a[n]=i}}}function Mn(t,e){return!t.composing&&("OPTION"===t.tagName||Pn(t,e)||Ln(t,e))}function Pn(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}function Ln(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.lazy)return!1;if(r.number)return p(n)!==p(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}function Nn(t){var e=Dn(t.style);return t.staticStyle?w(t.staticStyle,e):e}function Dn(t){return Array.isArray(t)?C(t):"string"==typeof t?_i(t):t}function Fn(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=Nn(o.data))&&w(r,n);(n=Nn(t.data))&&w(r,n);for(var i=t;i=i.parent;)i.data&&(n=Nn(i.data))&&w(r,n);return r}function Rn(t,e){var n=e.data,i=t.data;if(!(r(n.staticStyle)&&r(n.style)&&r(i.staticStyle)&&r(i.style))){var a,s,c=e.elm,u=i.staticStyle,l=i.normalizedStyle||i.style||{},f=u||l,d=Dn(e.data.style)||{};e.data.normalizedStyle=o(d.__ob__)?w({},d):d;var p=Fn(e,!0);for(s in f)r(p[s])&&wi(c,s,"");for(s in p)(a=p[s])!==f[s]&&wi(c,s,null==a?"":a)}}function Un(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Vn(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Bn(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&w(e,xi(t.name||"v")),w(e,t),e}return"string"==typeof t?xi(t):void 0}}function Hn(t){Mi(function(){Mi(t)})}function zn(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Un(t,e))}function Wn(t,e){t._transitionClasses&&h(t._transitionClasses,e),Vn(t,e)}function qn(t,e,n){var r=Kn(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===ki?Ei:Ii,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=ki,l=a,f=i.length):e===Ti?u>0&&(n=Ti,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?ki:Ti:null,f=n?n===ki?i.length:c.length:0),{type:n,timeout:l,propCount:f,hasTransform:n===ki&&Pi.test(r[Si+"Property"])}}function Xn(t,e){for(;t.length1}function tr(t,e){!0!==e.data.show&&Jn(e)}function er(t,e,n){nr(t,e,n),(Rr||Vr)&&setTimeout(function(){nr(t,e,n)},0)}function nr(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s-1,a.selected!==i&&(a.selected=i);else if(A(or(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function rr(t,e){return e.every(function(e){return!A(e,t)})}function or(t){return"_value"in t?t._value:t.value}function ir(t){t.target.composing=!0}function ar(t){t.target.composing&&(t.target.composing=!1,sr(t.target,"input"))}function sr(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function cr(t){return!t.componentInstance||t.data&&t.data.transition?t:cr(t.componentInstance._vnode)}function ur(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?ur(At(e.children)):t}function lr(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[Cr(i)]=o[i];return e}function fr(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function dr(t){for(;t=t.parent;)if(t.data.transition)return!0}function pr(t,e){return e.key===t.key&&e.tag===t.tag}function vr(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function hr(t){t.data.newPos=t.elm.getBoundingClientRect()}function mr(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}/*!
2 | * Vue.js v2.5.16
3 | * (c) 2014-2018 Evan You
4 | * Released under the MIT License.
5 | */
6 | var yr=Object.freeze({}),_r=Object.prototype.toString,gr=(v("slot,component",!0),v("key,ref,slot,slot-scope,is")),br=Object.prototype.hasOwnProperty,wr=/-(\w)/g,Cr=y(function(t){return t.replace(wr,function(t,e){return e?e.toUpperCase():""})}),$r=y(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),Ar=/\B([A-Z])/g,xr=y(function(t){return t.replace(Ar,"-$1").toLowerCase()}),Or=Function.prototype.bind?g:_,kr=function(t,e,n){return!1},Tr=function(t){return t},Sr="data-server-rendered",Er=["component","directive","filter"],jr=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],Ir={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:kr,isReservedAttr:kr,isUnknownElement:kr,getTagNamespace:$,parsePlatformTagName:Tr,mustUseProp:kr,_lifecycleHooks:jr},Mr=/[^\w.$]/,Pr="__proto__"in{},Lr="undefined"!=typeof window,Nr="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,Dr=Nr&&WXEnvironment.platform.toLowerCase(),Fr=Lr&&window.navigator.userAgent.toLowerCase(),Rr=Fr&&/msie|trident/.test(Fr),Ur=Fr&&Fr.indexOf("msie 9.0")>0,Vr=Fr&&Fr.indexOf("edge/")>0,Br=(Fr&&Fr.indexOf("android"),Fr&&/iphone|ipad|ipod|ios/.test(Fr)||"ios"===Dr),Hr=(Fr&&/chrome\/\d+/.test(Fr),{}.watch),zr=!1;if(Lr)try{var Wr={};Object.defineProperty(Wr,"passive",{get:function(){zr=!0}}),window.addEventListener("test-passive",null,Wr)}catch(t){}var qr,Kr,Xr=function(){return void 0===qr&&(qr=!Lr&&!Nr&&void 0!==t&&"server"===t.process.env.VUE_ENV),qr},Gr=Lr&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Jr="undefined"!=typeof Symbol&&E(Symbol)&&"undefined"!=typeof Reflect&&E(Reflect.ownKeys);Kr="undefined"!=typeof Set&&E(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var Zr=$,Qr=0,Yr=function(){this.id=Qr++,this.subs=[]};Yr.prototype.addSub=function(t){this.subs.push(t)},Yr.prototype.removeSub=function(t){h(this.subs,t)},Yr.prototype.depend=function(){Yr.target&&Yr.target.addDep(this)},Yr.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e1?b(n):n;for(var r=b(arguments,1),o=0,i=n.length;oparseInt(this.max)&&ze(c,u[0],u,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Vo={KeepAlive:Uo};!function(t){var e={};e.get=function(){return Ir},Object.defineProperty(t,"config",e),t.util={warn:Zr,extend:w,mergeOptions:J,defineReactive:R},t.set=U,t.delete=V,t.nextTick=ct,t.options=Object.create(null),Er.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,w(t.options.components,Vo),Le(t),Ne(t),De(t),Ue(t)}(Pe),Object.defineProperty(Pe.prototype,"$isServer",{get:Xr}),Object.defineProperty(Pe.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Pe,"FunctionalRenderContext",{value:ye}),Pe.version="2.5.16";var Bo,Ho,zo=v("style,class"),Wo=v("input,textarea,option,select,progress"),qo=function(t,e,n){return"value"===n&&Wo(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Ko=v("contenteditable,draggable,spellcheck"),Xo=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Go="http://www.w3.org/1999/xlink",Jo=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Zo=function(t){return Jo(t)?t.slice(6,t.length):""},Qo=function(t){return null==t||!1===t},Yo={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},ti=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),ei=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),ni=function(t){return ti(t)||ei(t)},ri=Object.create(null),oi=v("text,number,password,search,email,tel,url"),ii=Object.freeze({createElement:en,createElementNS:nn,createTextNode:rn,createComment:on,insertBefore:an,removeChild:sn,appendChild:cn,parentNode:un,nextSibling:ln,tagName:fn,setTextContent:dn,setStyleScope:pn}),ai={create:function(t,e){vn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(vn(t,!0),vn(e))},destroy:function(t){vn(t,!0)}},si=new eo("",{},[]),ci=["create","activate","update","remove","destroy"],ui={create:_n,update:_n,destroy:function(t){_n(t,si)}},li=Object.create(null),fi=[ai,ui],di={create:$n,update:$n},pi={create:On,update:On},vi="__r",hi="__c",mi={create:jn,update:jn},yi={create:In,update:In},_i=y(function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}),gi=/^--/,bi=/\s*!important$/,wi=function(t,e,n){if(gi.test(e))t.style.setProperty(e,n);else if(bi.test(n))t.style.setProperty(e,n.replace(bi,""),"important");else{var r=$i(e);if(Array.isArray(n))for(var o=0,i=n.length;ov?(f=r(n[y+1])?null:n[y+1].elm,_(t,f,n,p,y,i)):p>y&&b(t,e,d,v)}function $(t,e,n,r){for(var i=n;i=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(5),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(0))},function(t,e,n){(function(t,e){!function(t,n){"use strict";function r(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n