Authored by 陈峰

ssr 压测

@@ -83,8 +83,10 @@ const component = { @@ -83,8 +83,10 @@ const component = {
83 product_id: _.toString(pid), 83 product_id: _.toString(pid),
84 uid: req.user.uid || 0 84 uid: req.user.uid || 0
85 }; 85 };
  86 + const productPromise = model.product(params);
  87 + const vipPromise = req.user.uid ? model.getVipData(params) : Promise.resolve();
86 88
87 - Promise.all([model.product(params), model.getVipData(params)]).then((result) => { 89 + Promise.all([productPromise, vipPromise]).then((result) => {
88 let vipPrice = []; 90 let vipPrice = [];
89 91
90 // 最近浏览存储cookies 92 // 最近浏览存储cookies
@@ -97,7 +99,7 @@ const component = { @@ -97,7 +99,7 @@ const component = {
97 vipPrice.push({ 99 vipPrice.push({
98 level: vipLe(val.caption), 100 level: vipLe(val.caption),
99 price: val.price, 101 price: val.price,
100 - currentVip: req.user.uid && parseInt(result[1].data.current_vip_level, 10) === vipLe(val.caption) ? 'active' : ''//eslint-disable-line 102 + currentVip: result[1] && parseInt(result[1].data.current_vip_level, 10) === vipLe(val.caption) ? 'active' : ''//eslint-disable-line
101 }); 103 });
102 } 104 }
103 105
@@ -281,13 +283,19 @@ const component = { @@ -281,13 +283,19 @@ const component = {
281 yh_channel: CHANNEL_MAP[channel] || 1 283 yh_channel: CHANNEL_MAP[channel] || 1
282 }; 284 };
283 285
284 - model.mightLike(params).then(result => { 286 + return model.mightLike(params).then(result => {
285 if (result && result.code === 200) { 287 if (result && result.code === 200) {
286 res.json({ 288 res.json({
287 code: 200, 289 code: 200,
288 data: result.data.product_list || [], 290 data: result.data.product_list || [],
289 message: result.message 291 message: result.message
290 }); 292 });
  293 + } else {
  294 + res.json({
  295 + code: 400,
  296 + data: [],
  297 + message: ''
  298 + });
291 } 299 }
292 }).catch(next); 300 }).catch(next);
293 } 301 }
@@ -16,7 +16,8 @@ const model = { @@ -16,7 +16,8 @@ const model = {
16 return api.get('', Object.assign({ 16 return api.get('', Object.assign({
17 method: 'app.product.data' 17 method: 'app.product.data'
18 }, params), { 18 }, params), {
19 - code: 200 19 + code: 200,
  20 + cache: true
20 }).then(result => { 21 }).then(result => {
21 22
22 if (result.data) { 23 if (result.data) {
@@ -108,7 +109,9 @@ const model = { @@ -108,7 +109,9 @@ const model = {
108 refundExchange(params) { 109 refundExchange(params) {
109 return api.get('', Object.assign({ 110 return api.get('', Object.assign({
110 method: 'app.product.refundExchange' 111 method: 'app.product.refundExchange'
111 - }, params)); 112 + }, params), {
  113 + cache: true
  114 + });
112 }, 115 },
113 116
114 /** 117 /**
@@ -95,14 +95,14 @@ if (isProduction) { @@ -95,14 +95,14 @@ if (isProduction) {
95 Object.assign(module.exports, { 95 Object.assign(module.exports, {
96 appName: 'm.yohoblk.com', 96 appName: 'm.yohoblk.com',
97 domains: { 97 domains: {
98 - api: 'http://api.yoho.yohoops.org/',  
99 - service: 'http://service.yoho.yohoops.org/', 98 + api: 'http://api.yoho.cn/',
  99 + service: 'http://service.yoho.cn/',
100 singleApi: 'http://single.yoho.cn/' 100 singleApi: 'http://single.yoho.cn/'
101 }, 101 },
102 memcache: { 102 memcache: {
103 - master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'],  
104 - slave: ['memcache1.yohoops.org:12112', 'memcache2.yohoops.org:12112', 'memcache3.yohoops.org:12112'],  
105 - session: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], 103 + master: ['127.0.0.1:11211'],
  104 + slave: ['127.0.0.1:11211'],
  105 + session: ['127.0.0.1:11211'],
106 timeout: 100, 106 timeout: 100,
107 retries: 0 107 retries: 0
108 }, 108 },
@@ -12,7 +12,9 @@ if (config.useOneapm) { @@ -12,7 +12,9 @@ if (config.useOneapm) {
12 require('oneapm'); 12 require('oneapm');
13 } 13 }
14 14
  15 +var http = require('http');
15 const express = require('express'); 16 const express = require('express');
  17 +const {Router} = require('express');
16 const path = require('path'); 18 const path = require('path');
17 const bodyParser = require('body-parser'); 19 const bodyParser = require('body-parser');
18 const cookieParser = require('cookie-parser'); 20 const cookieParser = require('cookie-parser');
@@ -46,6 +48,12 @@ exports.createApp = (app) => { @@ -46,6 +48,12 @@ exports.createApp = (app) => {
46 if (app.locals.devEnv) { 48 if (app.locals.devEnv) {
47 app.use(devtools()); 49 app.use(devtools());
48 } 50 }
  51 + setTimeout(() => {
  52 + var {request, response} = require('express');
  53 + request.method = 'get';
  54 + request.url = 'http://m.yohoblk.com/product/pro_705324_863162/VANS%20Eraxie%20VN000EWZBLK1.html'
  55 + app.handle(request, response, ()=>{})
  56 + }, 1000)
49 57
50 58
51 app.use(global.yoho.hbs({ 59 app.use(global.yoho.hbs({
@@ -123,4 +131,4 @@ exports.createApp = (app) => { @@ -123,4 +131,4 @@ exports.createApp = (app) => {
123 app.listen(config.port, function() { 131 app.listen(config.port, function() {
124 logger.info(`worker is started at ${config.port}`); 132 logger.info(`worker is started at ${config.port}`);
125 }); 133 });
126 -} 134 +};
@@ -34,19 +34,27 @@ const render = (req, res, next) => { @@ -34,19 +34,27 @@ const render = (req, res, next) => {
34 }; 34 };
35 35
36 if (!isDev) { 36 if (!isDev) {
37 - Promise.all([  
38 - rp(`https://cdn.yoho.cn/yohoblk-wap/bundle/yoho-ssr-server-${pkg.version}.json`, {json: true}),  
39 - rp(`https://cdn.yoho.cn/yohoblk-wap/bundle/yoho-ssr-client-${pkg.version}.json`, {json: true}),  
40 - ]).then(results => {  
41 - renderer = createBundleRenderer(results[0], { 37 + // Promise.all([
  38 + // rp(`https://cdn.yoho.cn/yohoblk-wap/bundle/yoho-ssr-server-${pkg.version}.json`, {json: true}),
  39 + // rp(`https://cdn.yoho.cn/yohoblk-wap/bundle/yoho-ssr-client-${pkg.version}.json`, {json: true}),
  40 + // ]).then(results => {
  41 + // renderer = createBundleRenderer(results[0], {
  42 + // runInNewContext: false,
  43 + // template,
  44 + // clientManifest: results[1]
  45 + // });
  46 + // });
  47 +
  48 + const serverBundle = require(`../../public/dist/yohoblk-wap/bundle/yoho-ssr-server-${pkg.version}.json`);
  49 + const clientManifest = require(`../../public/dist/yohoblk-wap/bundle/yoho-ssr-client-${pkg.version}.json`);
  50 +
  51 + renderer = createBundleRenderer(serverBundle, {
42 runInNewContext: false, 52 runInNewContext: false,
43 template, 53 template,
44 - clientManifest: results[1]  
45 - }); 54 + clientManifest
46 }); 55 });
47 } 56 }
48 57
49 -  
50 const ssrRender = isDev ? (req, res, next) => { 58 const ssrRender = isDev ? (req, res, next) => {
51 let context = getContext(req); 59 let context = getContext(req);
52 60
@@ -6,6 +6,7 @@ const commonConfig = require('./config/common'); @@ -6,6 +6,7 @@ const commonConfig = require('./config/common');
6 6
7 exports.config = { 7 exports.config = {
8 app_name: [commonConfig.appName], 8 app_name: [commonConfig.appName],
  9 + tier_name: ['nodejs'],
9 license_key: 'UwAEUQcGVgBb27eSSlsXDlgaWx24a2deW0kABFAFTaf5bFYMT1MFGgdTb465AwBIAgxMA1k=', 10 license_key: 'UwAEUQcGVgBb27eSSlsXDlgaWx24a2deW0kABFAFTaf5bFYMT1MFGgdTb465AwBIAgxMA1k=',
10 logging: { 11 logging: {
11 level: 'info' 12 level: 'info'
@@ -110,18 +110,18 @@ @@ -110,18 +110,18 @@
110 "stylelint-processor-html": "^1.0.0", 110 "stylelint-processor-html": "^1.0.0",
111 "uglifyjs-webpack-plugin": "^0.4.6", 111 "uglifyjs-webpack-plugin": "^0.4.6",
112 "url-loader": "^0.5.9", 112 "url-loader": "^0.5.9",
113 - "vue": "^2.4.2", 113 + "vue": "^2.4.4",
114 "vue-awesome-swiper": "^2.6.2", 114 "vue-awesome-swiper": "^2.6.2",
115 "vue-hot-reload-api": "^1.2.0", 115 "vue-hot-reload-api": "^1.2.0",
116 "vue-html-loader": "^1.2.4", 116 "vue-html-loader": "^1.2.4",
117 "vue-infinite-scroll": "^2.0.1", 117 "vue-infinite-scroll": "^2.0.1",
118 "vue-lazyload": "^1.0.6", 118 "vue-lazyload": "^1.0.6",
119 - "vue-loader": "^13.0.2", 119 + "vue-loader": "^13.0.5",
120 "vue-router": "^2.7.0", 120 "vue-router": "^2.7.0",
121 - "vue-server-renderer": "^2.4.2",  
122 - "vue-style-loader": "^3.0.1", 121 + "vue-server-renderer": "^2.4.4",
  122 + "vue-style-loader": "^3.0.3",
123 "vue-swipe": "^2.0.3", 123 "vue-swipe": "^2.0.3",
124 - "vue-template-compiler": "^2.4.2", 124 + "vue-template-compiler": "^2.4.4",
125 "vue-touch": "2.0.0-beta.3", 125 "vue-touch": "2.0.0-beta.3",
126 "vuex": "^2.4.0", 126 "vuex": "^2.4.0",
127 "webpack": "3.3", 127 "webpack": "3.3",
  1 +process.env.NODE_ENV = 'production';
  2 +
  3 +require('./app.js');
1 import axios from 'axios'; 1 import axios from 'axios';
2 import config from 'config'; 2 import config from 'config';
3 3
4 -let axiosOptions = {  
5 - baseURL: config.axiosBaseUrl,  
6 - responseType: config.axiosResponseType,  
7 - headers: {} 4 +axios.defaults.baseURL = config.axiosBaseUrl;
  5 +axios.defaults.responseType = config.axiosResponseType;
  6 +axios.defaults.headers = {
  7 + 'X-Requested-With': 'XMLHttpRequest'
8 }; 8 };
9 -  
10 -if (process.env.VUE_ENV !== 'server') {  
11 - axiosOptions.headers['X-Requested-With'] = 'XMLHttpRequest'; 9 +const isServer = process.env.VUE_ENV === 'server';
  10 +if (isServer) {
  11 + console.log(global.test)
12 } 12 }
13 13
14 -const instanceAxios = axios.create(axiosOptions); // ssr不能使用全局的axios否则热更新会有问题  
15 -  
16 -instanceAxios.interceptors.response.use(response => {  
17 - return response;  
18 -}, error => { 14 +const errHandle = error => {
19 let msg = error && error.config ? `ssr api:[${error.config.method}] ${error.config.url} ${error.config.params || ''} ${error.response && error.response.data}` : 'axios error'; 15 let msg = error && error.config ? `ssr api:[${error.config.method}] ${error.config.url} ${error.config.params || ''} ${error.response && error.response.data}` : 'axios error';
20 16
21 return Promise.reject(msg); 17 return Promise.reject(msg);
22 -}); 18 +};
  19 +const request = (options) => {
  20 + options.headers = {
  21 + 'is-server': isServer
  22 + };
  23 + return axios(options).then(res => res.data, errHandle);
  24 +};
23 25
24 export default { 26 export default {
25 post(url, data, options) { 27 post(url, data, options) {
26 - return instanceAxios.post(url, data, options).then(res => res.data); 28 + return request(Object.assign({
  29 + url,
  30 + data,
  31 + method: 'post',
  32 + }, options));
27 }, 33 },
28 - get(url, params) {  
29 - return instanceAxios.get(url, {params}).then(res => res.data); 34 + get(url, params, options) {
  35 + return request(Object.assign({
  36 + url,
  37 + params,
  38 + method: 'get',
  39 + }, options));
30 }, 40 },
31 put(url, data, options) { 41 put(url, data, options) {
32 - return instanceAxios.put(url, data, options).then(res => res.data); 42 + return request(Object.assign({
  43 + url,
  44 + data,
  45 + method: 'put',
  46 + }, options));
33 }, 47 },
34 - delete(url, params) {  
35 - return instanceAxios.delete(url, {params}).then(res => res.data); 48 + delete(url, params, options) {
  49 + return request(Object.assign({
  50 + url,
  51 + params,
  52 + method: 'delete',
  53 + }, options));
36 } 54 }
37 }; 55 };
@@ -3,10 +3,9 @@ import { @@ -3,10 +3,9 @@ import {
3 SET_ENV 3 SET_ENV
4 } from 'store/yoho/types'; 4 } from 'store/yoho/types';
5 5
6 -const {app, router, store} = createApp();  
7 -  
8 export default context => { 6 export default context => {
9 return new Promise((resolve, reject) => { 7 return new Promise((resolve, reject) => {
  8 + const {app, router, store} = createApp();
10 const {url} = context; 9 const {url} = context;
11 10
12 const route = router.resolve(url).route; 11 const route = router.resolve(url).route;
@@ -45,13 +45,8 @@ export default { @@ -45,13 +45,8 @@ export default {
45 } 45 }
46 } 46 }
47 }, 47 },
48 - created() { 48 + mounted() {
49 this.loadlList(); 49 this.loadlList();
50 - },  
51 - watch: {  
52 - skn() {  
53 - this.loadlList();  
54 - }  
55 } 50 }
56 }; 51 };
57 </script> 52 </script>
@@ -38,9 +38,9 @@ const loadRoutes = (rous, paths, children) => { @@ -38,9 +38,9 @@ const loadRoutes = (rous, paths, children) => {
38 } 38 }
39 }; 39 };
40 40
41 -export function createRouter() {  
42 - let routes = _.flattenDeep(loadRoutes(pages)); 41 +const routes = _.flattenDeep(loadRoutes(pages));
43 42
  43 +export function createRouter() {
44 return new Router({ 44 return new Router({
45 mode: 'history', 45 mode: 'history',
46 routes, 46 routes,
@@ -31,13 +31,14 @@ export default { @@ -31,13 +31,14 @@ export default {
31 }, 31 },
32 actions: { 32 actions: {
33 [FETCH_PRODUCT_DETAIL]({commit, state}, {product_id}) { 33 [FETCH_PRODUCT_DETAIL]({commit, state}, {product_id}) {
34 - let cacheItem = state.items[product_id]; 34 + // let cacheItem = state.items[product_id];
35 35
36 - if (cacheItem && Date.now() - cacheItem.__lasttime < 1000 * 60 * 3) {  
37 - return Promise.resolve();  
38 - } 36 + // if (cacheItem && Date.now() - cacheItem.__lasttime < 1000 * 60 * 3) {
  37 + // return Promise.resolve();
  38 + // }
39 return api.get(`/product/product_${product_id}.json`).then(res => { 39 return api.get(`/product/product_${product_id}.json`).then(res => {
40 if (res.code === 200) { 40 if (res.code === 200) {
  41 + return commit(FETCH_PRODUCT_DETAIL, {product: res.data});
41 return Promise.all([ 42 return Promise.all([
42 api.get(`/product/refundExchange/${res.data.product_skn}`), 43 api.get(`/product/refundExchange/${res.data.product_skn}`),
43 api.get(`/product/isFavorite/${res.data.product_id}`)]).then(result => { 44 api.get(`/product/isFavorite/${res.data.product_id}`)]).then(result => {
@@ -1042,7 +1042,7 @@ block-stream@*: @@ -1042,7 +1042,7 @@ block-stream@*:
1042 dependencies: 1042 dependencies:
1043 inherits "~2.0.0" 1043 inherits "~2.0.0"
1044 1044
1045 -bluebird@3.x.x, bluebird@^3.0.5, bluebird@^3.0.6, bluebird@^3.1.1, bluebird@^3.3, bluebird@^3.4.0, bluebird@^3.4.2, bluebird@^3.5.0: 1045 +bluebird@3.x.x, bluebird@^3.0.6, bluebird@^3.1.1, bluebird@^3.3, bluebird@^3.4.0, bluebird@^3.4.2, bluebird@^3.5.0:
1046 version "3.5.0" 1046 version "3.5.0"
1047 resolved "http://npm.yoho.cn/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 1047 resolved "http://npm.yoho.cn/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
1048 1048
@@ -1677,13 +1677,6 @@ concat-stream@~1.5.1: @@ -1677,13 +1677,6 @@ concat-stream@~1.5.1:
1677 readable-stream "~2.0.0" 1677 readable-stream "~2.0.0"
1678 typedarray "~0.0.5" 1678 typedarray "~0.0.5"
1679 1679
1680 -config-chain@~1.1.5:  
1681 - version "1.1.11"  
1682 - resolved "http://npm.yoho.cn/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"  
1683 - dependencies:  
1684 - ini "^1.3.4"  
1685 - proto-list "~1.2.1"  
1686 -  
1687 configstore@^1.0.0: 1680 configstore@^1.0.0:
1688 version "1.4.0" 1681 version "1.4.0"
1689 resolved "http://npm.yoho.cn/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" 1682 resolved "http://npm.yoho.cn/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021"
@@ -2326,15 +2319,6 @@ ecc-jsbn@~0.1.1: @@ -2326,15 +2319,6 @@ ecc-jsbn@~0.1.1:
2326 dependencies: 2319 dependencies:
2327 jsbn "~0.1.0" 2320 jsbn "~0.1.0"
2328 2321
2329 -editorconfig@^0.13.2:  
2330 - version "0.13.2"  
2331 - resolved "http://npm.yoho.cn/editorconfig/-/editorconfig-0.13.2.tgz#8e57926d9ee69ab6cb999f027c2171467acceb35"  
2332 - dependencies:  
2333 - bluebird "^3.0.5"  
2334 - commander "^2.9.0"  
2335 - lru-cache "^3.2.0"  
2336 - sigmund "^1.0.1"  
2337 -  
2338 ee-first@1.1.1: 2322 ee-first@1.1.1:
2339 version "1.1.1" 2323 version "1.1.1"
2340 resolved "http://npm.yoho.cn/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 2324 resolved "http://npm.yoho.cn/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -3741,7 +3725,7 @@ inherits@2.0.1: @@ -3741,7 +3725,7 @@ inherits@2.0.1:
3741 version "2.0.1" 3725 version "2.0.1"
3742 resolved "http://npm.yoho.cn/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 3726 resolved "http://npm.yoho.cn/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
3743 3727
3744 -ini@^1.3.4, ini@~1.3.0: 3728 +ini@~1.3.0:
3745 version "1.3.4" 3729 version "1.3.4"
3746 resolved "http://npm.yoho.cn/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 3730 resolved "http://npm.yoho.cn/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
3747 3731
@@ -4050,15 +4034,6 @@ js-base64@^2.1.8, js-base64@^2.1.9: @@ -4050,15 +4034,6 @@ js-base64@^2.1.8, js-base64@^2.1.9:
4050 version "2.1.9" 4034 version "2.1.9"
4051 resolved "http://npm.yoho.cn/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" 4035 resolved "http://npm.yoho.cn/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
4052 4036
4053 -js-beautify@^1.6.3:  
4054 - version "1.6.14"  
4055 - resolved "http://npm.yoho.cn/js-beautify/-/js-beautify-1.6.14.tgz#d3b8f7322d02b9277d58bd238264c327e58044cd"  
4056 - dependencies:  
4057 - config-chain "~1.1.5"  
4058 - editorconfig "^0.13.2"  
4059 - mkdirp "~0.5.0"  
4060 - nopt "~3.0.1"  
4061 -  
4062 js-tokens@^3.0.0: 4037 js-tokens@^3.0.0:
4063 version "3.0.2" 4038 version "3.0.2"
4064 resolved "http://npm.yoho.cn/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 4039 resolved "http://npm.yoho.cn/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -4587,13 +4562,7 @@ lowercase-keys@^1.0.0: @@ -4587,13 +4562,7 @@ lowercase-keys@^1.0.0:
4587 version "1.0.0" 4562 version "1.0.0"
4588 resolved "http://npm.yoho.cn/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 4563 resolved "http://npm.yoho.cn/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
4589 4564
4590 -lru-cache@^3.2.0:  
4591 - version "3.2.0"  
4592 - resolved "http://npm.yoho.cn/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee"  
4593 - dependencies:  
4594 - pseudomap "^1.0.1"  
4595 -  
4596 -lru-cache@^4.0.1: 4565 +lru-cache@^4.0.1, lru-cache@^4.1.1:
4597 version "4.1.1" 4566 version "4.1.1"
4598 resolved "http://npm.yoho.cn/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 4567 resolved "http://npm.yoho.cn/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
4599 dependencies: 4568 dependencies:
@@ -5075,7 +5044,7 @@ nodemon@^1.10.2: @@ -5075,7 +5044,7 @@ nodemon@^1.10.2:
5075 undefsafe "0.0.3" 5044 undefsafe "0.0.3"
5076 update-notifier "0.5.0" 5045 update-notifier "0.5.0"
5077 5046
5078 -"nopt@2 || 3", nopt@~3.0.1: 5047 +"nopt@2 || 3":
5079 version "3.0.6" 5048 version "3.0.6"
5080 resolved "http://npm.yoho.cn/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 5049 resolved "http://npm.yoho.cn/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
5081 dependencies: 5050 dependencies:
@@ -6278,6 +6247,10 @@ preserve@^0.2.0: @@ -6278,6 +6247,10 @@ preserve@^0.2.0:
6278 version "0.2.0" 6247 version "0.2.0"
6279 resolved "http://npm.yoho.cn/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 6248 resolved "http://npm.yoho.cn/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
6280 6249
  6250 +prettier@^1.7.0:
  6251 + version "1.7.0"
  6252 + resolved "http://npm.yoho.cn/prettier/-/prettier-1.7.0.tgz#47481588f41f7c90f63938feb202ac82554e7150"
  6253 +
6281 prettysize@^0.1.0: 6254 prettysize@^0.1.0:
6282 version "0.1.0" 6255 version "0.1.0"
6283 resolved "http://npm.yoho.cn/prettysize/-/prettysize-0.1.0.tgz#38ee534e2d298bc945fb7243203dd873cefc9679" 6256 resolved "http://npm.yoho.cn/prettysize/-/prettysize-0.1.0.tgz#38ee534e2d298bc945fb7243203dd873cefc9679"
@@ -6308,10 +6281,6 @@ promise@^7.0.3: @@ -6308,10 +6281,6 @@ promise@^7.0.3:
6308 dependencies: 6281 dependencies:
6309 asap "~2.0.3" 6282 asap "~2.0.3"
6310 6283
6311 -proto-list@~1.2.1:  
6312 - version "1.2.4"  
6313 - resolved "http://npm.yoho.cn/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"  
6314 -  
6315 proxy-addr@~1.1.5: 6284 proxy-addr@~1.1.5:
6316 version "1.1.5" 6285 version "1.1.5"
6317 resolved "http://npm.yoho.cn/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" 6286 resolved "http://npm.yoho.cn/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918"
@@ -6329,7 +6298,7 @@ ps-tree@^1.0.1: @@ -6329,7 +6298,7 @@ ps-tree@^1.0.1:
6329 dependencies: 6298 dependencies:
6330 event-stream "~3.3.0" 6299 event-stream "~3.3.0"
6331 6300
6332 -pseudomap@^1.0.1, pseudomap@^1.0.2: 6301 +pseudomap@^1.0.2:
6333 version "1.0.2" 6302 version "1.0.2"
6334 resolved "http://npm.yoho.cn/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 6303 resolved "http://npm.yoho.cn/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
6335 6304
@@ -6910,11 +6879,11 @@ rx-lite@^3.1.2: @@ -6910,11 +6879,11 @@ rx-lite@^3.1.2:
6910 version "3.1.2" 6879 version "3.1.2"
6911 resolved "http://npm.yoho.cn/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 6880 resolved "http://npm.yoho.cn/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
6912 6881
6913 -safe-buffer@5.0.1, safe-buffer@^5.0.1, safe-buffer@~5.0.1: 6882 +safe-buffer@5.0.1, safe-buffer@~5.0.1:
6914 version "5.0.1" 6883 version "5.0.1"
6915 resolved "http://npm.yoho.cn/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 6884 resolved "http://npm.yoho.cn/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
6916 6885
6917 -safe-buffer@5.1.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 6886 +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
6918 version "5.1.1" 6887 version "5.1.1"
6919 resolved "http://npm.yoho.cn/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 6888 resolved "http://npm.yoho.cn/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
6920 6889
@@ -7113,10 +7082,6 @@ shimmer@^1.1.0: @@ -7113,10 +7082,6 @@ shimmer@^1.1.0:
7113 version "1.1.0" 7082 version "1.1.0"
7114 resolved "http://npm.yoho.cn/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35" 7083 resolved "http://npm.yoho.cn/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35"
7115 7084
7116 -sigmund@^1.0.1:  
7117 - version "1.0.1"  
7118 - resolved "http://npm.yoho.cn/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"  
7119 -  
7120 signal-exit@^3.0.0: 7085 signal-exit@^3.0.0:
7121 version "3.0.2" 7086 version "3.0.2"
7122 resolved "http://npm.yoho.cn/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 7087 resolved "http://npm.yoho.cn/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -8128,18 +8093,18 @@ vue-lazyload@^1.0.6: @@ -8128,18 +8093,18 @@ vue-lazyload@^1.0.6:
8128 version "1.0.6" 8093 version "1.0.6"
8129 resolved "http://npm.yoho.cn/vue-lazyload/-/vue-lazyload-1.0.6.tgz#7d5494fc35c35fc84dcc271165b827e309b4e793" 8094 resolved "http://npm.yoho.cn/vue-lazyload/-/vue-lazyload-1.0.6.tgz#7d5494fc35c35fc84dcc271165b827e309b4e793"
8130 8095
8131 -vue-loader@^13.0.2:  
8132 - version "13.0.2"  
8133 - resolved "http://npm.yoho.cn/vue-loader/-/vue-loader-13.0.2.tgz#78c3e80f69c0520f99a092854dd7d63e3921a28d" 8096 +vue-loader@^13.0.5:
  8097 + version "13.0.5"
  8098 + resolved "http://npm.yoho.cn/vue-loader/-/vue-loader-13.0.5.tgz#3639e9fb3940cded7f0fc34429277fb6de70a57c"
8134 dependencies: 8099 dependencies:
8135 consolidate "^0.14.0" 8100 consolidate "^0.14.0"
8136 hash-sum "^1.0.2" 8101 hash-sum "^1.0.2"
8137 - js-beautify "^1.6.3"  
8138 loader-utils "^1.1.0" 8102 loader-utils "^1.1.0"
8139 - lru-cache "^4.0.1"  
8140 - postcss "^6.0.1" 8103 + lru-cache "^4.1.1"
  8104 + postcss "^6.0.6"
8141 postcss-load-config "^1.1.0" 8105 postcss-load-config "^1.1.0"
8142 postcss-selector-parser "^2.0.0" 8106 postcss-selector-parser "^2.0.0"
  8107 + prettier "^1.7.0"
8143 resolve "^1.3.3" 8108 resolve "^1.3.3"
8144 source-map "^0.5.6" 8109 source-map "^0.5.6"
8145 vue-hot-reload-api "^2.1.0" 8110 vue-hot-reload-api "^2.1.0"
@@ -8160,9 +8125,9 @@ vue-router@^2.7.0: @@ -8160,9 +8125,9 @@ vue-router@^2.7.0:
8160 version "2.7.0" 8125 version "2.7.0"
8161 resolved "http://npm.yoho.cn/vue-router/-/vue-router-2.7.0.tgz#16d424493aa51c3c8cce8b7c7210ea4c3a89aff1" 8126 resolved "http://npm.yoho.cn/vue-router/-/vue-router-2.7.0.tgz#16d424493aa51c3c8cce8b7c7210ea4c3a89aff1"
8162 8127
8163 -vue-server-renderer@^2.4.2:  
8164 - version "2.4.2"  
8165 - resolved "http://npm.yoho.cn/vue-server-renderer/-/vue-server-renderer-2.4.2.tgz#0ba0f984181ea1c455362b09bddf60bc0e0a03fa" 8128 +vue-server-renderer@^2.4.4:
  8129 + version "2.4.4"
  8130 + resolved "http://npm.yoho.cn/vue-server-renderer/-/vue-server-renderer-2.4.4.tgz#bd59cf4e42dfaf2c9e388af8837b5420dd51360d"
8166 dependencies: 8131 dependencies:
8167 chalk "^1.1.3" 8132 chalk "^1.1.3"
8168 hash-sum "^1.0.2" 8133 hash-sum "^1.0.2"
@@ -8173,9 +8138,9 @@ vue-server-renderer@^2.4.2: @@ -8173,9 +8138,9 @@ vue-server-renderer@^2.4.2:
8173 serialize-javascript "^1.3.0" 8138 serialize-javascript "^1.3.0"
8174 source-map "0.5.6" 8139 source-map "0.5.6"
8175 8140
8176 -vue-style-loader@^3.0.0, vue-style-loader@^3.0.1:  
8177 - version "3.0.1"  
8178 - resolved "http://npm.yoho.cn/vue-style-loader/-/vue-style-loader-3.0.1.tgz#c8b639bb2f24baf9d78274dc17e4f264c1deda08" 8141 +vue-style-loader@^3.0.0, vue-style-loader@^3.0.3:
  8142 + version "3.0.3"
  8143 + resolved "http://npm.yoho.cn/vue-style-loader/-/vue-style-loader-3.0.3.tgz#623658f81506aef9d121cdc113a4f5c9cac32df7"
8179 dependencies: 8144 dependencies:
8180 hash-sum "^1.0.2" 8145 hash-sum "^1.0.2"
8181 loader-utils "^1.0.2" 8146 loader-utils "^1.0.2"
@@ -8192,9 +8157,9 @@ vue-swipe@^2.0.3: @@ -8192,9 +8157,9 @@ vue-swipe@^2.0.3:
8192 dependencies: 8157 dependencies:
8193 wind-dom "0.0.3" 8158 wind-dom "0.0.3"
8194 8159
8195 -vue-template-compiler@^2.4.2:  
8196 - version "2.4.2"  
8197 - resolved "http://npm.yoho.cn/vue-template-compiler/-/vue-template-compiler-2.4.2.tgz#5a45d843f148b098f6c1d1e35ac20c4956d30ad1" 8160 +vue-template-compiler@^2.4.4:
  8161 + version "2.4.4"
  8162 + resolved "http://npm.yoho.cn/vue-template-compiler/-/vue-template-compiler-2.4.4.tgz#2cde3b704124985c27d50b5387c9691ba515fb57"
8198 dependencies: 8163 dependencies:
8199 de-indent "^1.0.2" 8164 de-indent "^1.0.2"
8200 he "^1.1.0" 8165 he "^1.1.0"
@@ -8216,9 +8181,9 @@ vue-touch@2.0.0-beta.3: @@ -8216,9 +8181,9 @@ vue-touch@2.0.0-beta.3:
8216 rollup-plugin-commonjs "^7.0.0" 8181 rollup-plugin-commonjs "^7.0.0"
8217 rollup-plugin-node-resolve "^2.0.0" 8182 rollup-plugin-node-resolve "^2.0.0"
8218 8183
8219 -vue@^2.4.2:  
8220 - version "2.4.2"  
8221 - resolved "http://npm.yoho.cn/vue/-/vue-2.4.2.tgz#a9855261f191c978cc0dc1150531b8d08149b58c" 8184 +vue@^2.4.4:
  8185 + version "2.4.4"
  8186 + resolved "http://npm.yoho.cn/vue/-/vue-2.4.4.tgz#ea9550b96a71465fd2b8b17b61673b3561861789"
8222 8187
8223 vuex@^2.4.0: 8188 vuex@^2.4.0:
8224 version "2.4.0" 8189 version "2.4.0"