Authored by 陈峰

Merge branch 'feature/change' into 'master'

Feature/change



See merge request !109
1 // 将设置放入此文件中以覆盖默认值和用户设置。 1 // 将设置放入此文件中以覆盖默认值和用户设置。
2 { 2 {
3 "files.exclude": { 3 "files.exclude": {
4 - "public/dist/": true,  
5 "logs/": true 4 "logs/": true
6 }, 5 },
7 "vetur.grammar.customBlocks": { 6 "vetur.grammar.customBlocks": {
@@ -6,26 +6,23 @@ @@ -6,26 +6,23 @@
6 # nginx version: 1.12.0 6 # nginx version: 1.12.0
7 ############################################################ 7 ############################################################
8 8
9 -#base image : ccr.ccs.tencentyun.com/yoho-base/nodejs:8.9.1  
10 -FROM ccr.ccs.tencentyun.com/yoho-base/nodejs:8.9.1 9 +#base image : ccr.ccs.tencentyun.com/yoho-base/node
  10 +FROM ccr.ccs.tencentyun.com/yoho-base/node:10.4.1-alpine-fix
11 11
12 MAINTAINER feng.chen <feng.chen@yoho.cn> 12 MAINTAINER feng.chen <feng.chen@yoho.cn>
13 13
14 ENV NODE_ENV=production \ 14 ENV NODE_ENV=production \
15 NODE_HOME=/home 15 NODE_HOME=/home
16 16
17 -COPY yoho-blk-wap.tar.gz /home  
18 -  
19 RUN cd /home && \ 17 RUN cd /home && \
20 mkdir -p /home/yoho-blk-wap && \ 18 mkdir -p /home/yoho-blk-wap && \
21 - mkdir -p /Data/log/yoho-blk-wap && \  
22 - mkdir -p /Data/log/yohoblk-wap && \  
23 - tar -xzvf yoho-blk-wap.tar.gz -C /home/yoho-blk-wap && \  
24 - rm -rf yoho-blk-wap.tar.gz  
25 - 19 + mkdir -p /Data/log/yoho-blk-wap
  20 +
  21 +COPY . /home/yoho-blk-wap
  22 +
26 WORKDIR /home/yoho-blk-wap 23 WORKDIR /home/yoho-blk-wap
27 24
28 #expose port 25 #expose port
29 -EXPOSE 6004  
30 -  
31 -CMD ["node","/home/yoho-blk-wap/app.js"] 26 +EXPOSE 6002
  27 +
  28 +CMD ["node","/home/yoho-blk-wap/app.js"]
  1 +const shelljs = require('shelljs');
  2 +const path = require('path');
  3 +
  4 +const distDir = path.join(__dirname, '../dist/node');
  5 +
  6 +shelljs.rm('-rf', distDir);
  7 +shelljs.mkdir('-p', distDir);
  8 +
  9 +const cpPaths = [
  10 + 'favicon.ico',
  11 + '.npmrc',
  12 + 'process.json',
  13 + 'Dockerfile',
  14 + 'yarn.lock',
  15 + 'package.json',
  16 + '*.js',
  17 + 'config',
  18 + 'apps',
  19 + 'utils',
  20 + 'doraemon',
  21 + 'src/index.html',
  22 + 'manifest.json'
  23 +];
  24 +
  25 +new Promise(resolve => { // 加载manifest.json文件
  26 + resolve();
  27 +}).then(() => { // 拷贝node代码
  28 + cpPaths.forEach(p => {
  29 + let dist = distDir;
  30 + let file = p;
  31 +
  32 + if (typeof p === 'object') {
  33 + dist = path.join(dist, p[1]);
  34 + file = p[0];
  35 +
  36 + if (!shelljs.test('-e', dist)) {
  37 + shelljs.mkdir('-p', dist);
  38 + }
  39 + }
  40 + shelljs.cp('-R', path.join(__dirname, '../', file), dist);
  41 + });
  42 +}).then(() => { // 安装依赖和清理node_modules
  43 + shelljs.cd(distDir);
  44 + if (shelljs.exec('yarn --production=true').code !== 0) {
  45 + throw 'yarn install faild';
  46 + }
  47 +}).catch(error => {
  48 + console.error(`error:${error}`);
  49 + return process.exit(1); //eslint-disable-line
  50 +});
  51 +
  52 +
  53 +
  54 +
  55 +
  56 +
@@ -2,7 +2,7 @@ const path = require('path'); @@ -2,7 +2,7 @@ const path = require('path');
2 const ExtractTextPlugin = require('extract-text-webpack-plugin'); 2 const ExtractTextPlugin = require('extract-text-webpack-plugin');
3 const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); 3 const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin');
4 const pkg = require('../package.json'); 4 const pkg = require('../package.json');
5 -const distDir = path.join(__dirname, `../public/dist/${pkg.name}/bundle`); 5 +const distDir = path.join(__dirname, `../dist/${pkg.name}/bundle`);
6 6
7 module.exports = { 7 module.exports = {
8 output: { 8 output: {
@@ -7,21 +7,21 @@ @@ -7,21 +7,21 @@
7 7
8 8
9 const isProduction = process.env.NODE_ENV === 'production'; 9 const isProduction = process.env.NODE_ENV === 'production';
10 -const isTest = process.env.NODE_ENV === 'test'; 10 +const isTest = process.env.NODE_ENV === 'test3';
11 11
12 module.exports = { 12 module.exports = {
13 - app: 'h5',  
14 - appVersion: '5.6.0', // 调用api的版本  
15 - port: 6004,  
16 - siteUrl: '//m.yohoblk.com',  
17 - signExtend: {  
18 - app_type: 1,  
19 - business_line: 'yohoblk'  
20 - },  
21 - domains: {  
22 - api: 'http://api-test3.yohops.com:9999/',  
23 - service: 'http://service-test3.yohops.com:9999/',  
24 - singleApi: 'http://api-test3.yohops.com:9999/' 13 + app: 'h5',
  14 + appVersion: '5.6.0', // 调用api的版本
  15 + port: 6004,
  16 + siteUrl: '//m.yohoblk.com',
  17 + signExtend: {
  18 + app_type: 1,
  19 + business_line: 'yohoblk'
  20 + },
  21 + domains: {
  22 + api: 'http://api-test3.dev.yohocorp.com/',
  23 + service: 'http://api-test3.dev.yohocorp.com/',
  24 + singleApi: 'http://api-test3.dev.yohocorp.com/'
25 25
26 // api: 'http://dev-api.yohops.com:9999/', 26 // api: 'http://dev-api.yohops.com:9999/',
27 // service: 'http://dev-service.yohops.com:9999/', 27 // service: 'http://dev-service.yohops.com:9999/',
@@ -30,184 +30,184 @@ module.exports = { @@ -30,184 +30,184 @@ module.exports = {
30 // api: 'http://api.yoho.cn/', 30 // api: 'http://api.yoho.cn/',
31 // service: 'http://service.yoho.cn/', 31 // service: 'http://service.yoho.cn/',
32 // singleApi: 'http://single.yoho.cn/' 32 // singleApi: 'http://single.yoho.cn/'
33 - },  
34 - subDomains: {  
35 - host: '.m.yohoblk.com',  
36 - default: '//m.yohoblk.com',  
37 - index: '//m.yohoblk.com'  
38 - },  
39 - report: {  
40 - host: '10.66.0.139',  
41 - port: 8086,  
42 - db: 'web-apm'  
43 - },  
44 - useOneapm: false,  
45 - useCache: true,  
46 - redis: {  
47 - connect: {  
48 - host: '127.0.0.1', 33 + },
  34 + subDomains: {
  35 + host: '.m.yohoblk.com',
  36 + default: '//m.yohoblk.com',
  37 + index: '//m.yohoblk.com'
  38 + },
  39 + report: {
  40 + host: '10.66.0.139',
  41 + port: 8086,
  42 + db: 'web-apm'
  43 + },
  44 + useOneapm: false,
  45 + useCache: true,
  46 + redis: {
  47 + connect: {
  48 + host: '127.0.0.1',
49 49
50 // host: '192.168.102.49', 50 // host: '192.168.102.49',
51 - port: '6379',  
52 - enable_offline_queue: false,  
53 - retry_strategy(options) {  
54 - if (options.error && options.error.code === 'ECONNREFUSED') {  
55 - console.log('connect redis server fail');  
56 - } 51 + port: '6379',
  52 + enable_offline_queue: false,
  53 + retry_strategy(options) {
  54 + if (options.error && options.error.code === 'ECONNREFUSED') {
  55 + console.log('connect redis server fail');
  56 + }
57 57
58 - if (options.attempt < 10) {  
59 - return Math.min(options.attempt * 100, 1000);  
60 - } else if (options.attempt > 10 && options.attempt < 100) {  
61 - return 1000;  
62 - } else {  
63 - return 1000 * 10;  
64 - }  
65 - }  
66 - },  
67 - session: {  
68 - host: '127.0.01',  
69 - port: '6379',  
70 - prefix: 'yohoblk_session:' 58 + if (options.attempt < 10) {
  59 + return Math.min(options.attempt * 100, 1000);
  60 + } else if (options.attempt > 10 && options.attempt < 100) {
  61 + return 1000;
  62 + } else {
  63 + return 1000 * 10;
71 } 64 }
  65 + }
72 }, 66 },
73 - interfaceShunt: {  
74 - useInterfaceShunt: false,  
75 - tencentServers: {  
76 - api: ['123.206.1.98', '123.206.2.80'],  
77 - service: ['123.206.1.98', '123.206.2.80']  
78 - },  
79 - awsServers: {  
80 - api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',  
81 - service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'  
82 - } 67 + session: {
  68 + host: '127.0.01',
  69 + port: '6379',
  70 + prefix: 'yohoblk_session:'
  71 + }
  72 + },
  73 + interfaceShunt: {
  74 + useInterfaceShunt: false,
  75 + tencentServers: {
  76 + api: ['123.206.1.98', '123.206.2.80'],
  77 + service: ['123.206.1.98', '123.206.2.80']
83 }, 78 },
84 - loggers: {  
85 - infoFile: {  
86 - name: 'info',  
87 - level: 'info',  
88 - filename: '/Data/logs/yohoblk-wap/info/info.log',  
89 - maxFiles: 1,  
90 - tailable: true,  
91 - maxsize: Math.pow(1024, 3),  
92 - },  
93 - errorFile: {  
94 - name: 'error',  
95 - level: 'error',  
96 - filename: '/Data/logs/yohoblk-wap/error/error.log',  
97 - handleExceptions: true,  
98 - maxFiles: 1,  
99 - tailable: true,  
100 - maxsize: Math.pow(1024, 3),  
101 - },  
102 - console: {  
103 - level: 'debug',  
104 - prettyPrint: true,  
105 - debugStdout: true  
106 - } 79 + awsServers: {
  80 + api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',
  81 + service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'
  82 + }
  83 + },
  84 + loggers: {
  85 + infoFile: {
  86 + name: 'info',
  87 + level: 'info',
  88 + filename: '/Data/logs/yohoblk-wap/info/info.log',
  89 + maxFiles: 1,
  90 + tailable: true,
  91 + maxsize: Math.pow(1024, 3),
107 }, 92 },
108 - thirdLogin: {  
109 - wechat: {  
110 - appID: 'wx75e5a7c0c88e45c2',  
111 - appSecret: 'ce21ae4a3f93852279175a167e54509b'  
112 - } 93 + errorFile: {
  94 + name: 'error',
  95 + level: 'error',
  96 + filename: '/Data/logs/yohoblk-wap/error/error.log',
  97 + handleExceptions: true,
  98 + maxFiles: 1,
  99 + tailable: true,
  100 + maxsize: Math.pow(1024, 3),
  101 + },
  102 + console: {
  103 + level: 'debug',
  104 + prettyPrint: true,
  105 + debugStdout: true
113 } 106 }
  107 + },
  108 + thirdLogin: {
  109 + wechat: {
  110 + appID: 'wx75e5a7c0c88e45c2',
  111 + appSecret: 'ce21ae4a3f93852279175a167e54509b'
  112 + }
  113 + }
114 }; 114 };
115 115
116 if (isProduction) { 116 if (isProduction) {
117 - Object.assign(module.exports, {  
118 - appName: 'm.yohoblk.com',  
119 - domains: {  
120 - api: 'http://api.yoho.yohoops.org/',  
121 - service: 'http://api.yoho.yohoops.org/',  
122 - singleApi: 'http://api.yoho.yohoops.org/',  
123 - },  
124 - redis: {  
125 - connect: {  
126 - host: 'redis.web.yohoops.org',  
127 - port: '6379',  
128 - password: 'redis9646',  
129 - enable_offline_queue: false,  
130 - retry_strategy(options) {  
131 - if (options.error && options.error.code === 'ECONNREFUSED') {  
132 - console.log('connect redis server fail');  
133 - } 117 + Object.assign(module.exports, {
  118 + appName: 'm.yohoblk.com',
  119 + domains: {
  120 + api: 'http://api.yoho.yohoops.org/',
  121 + service: 'http://api.yoho.yohoops.org/',
  122 + singleApi: 'http://api.yoho.yohoops.org/',
  123 + },
  124 + redis: {
  125 + connect: {
  126 + host: 'redis.web.yohoops.org',
  127 + port: '6379',
  128 + password: 'redis9646',
  129 + enable_offline_queue: false,
  130 + retry_strategy(options) {
  131 + if (options.error && options.error.code === 'ECONNREFUSED') {
  132 + console.log('connect redis server fail');
  133 + }
134 134
135 - if (options.attempt < 10) {  
136 - return Math.min(options.attempt * 100, 1000);  
137 - } else if (options.attempt > 10 && options.attempt < 100) {  
138 - return 1000;  
139 - } else {  
140 - return 1000 * 10;  
141 - }  
142 - }  
143 - },  
144 - session: {  
145 - host: 'redis.web.yohoops.org',  
146 - port: '6379',  
147 - pass: 'redis9646',  
148 - prefix: 'yohoblk_session:'  
149 - }  
150 - },  
151 - useOneapm: true,  
152 - useCache: true,  
153 - interfaceShunt: {  
154 - useInterfaceShunt: false,  
155 - tencentServers: {  
156 - api: ['123.206.1.98', '123.206.2.80'],  
157 - service: ['123.206.1.98', '123.206.2.80']  
158 - },  
159 - awsServers: {  
160 - api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',  
161 - service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'  
162 - }  
163 - },  
164 - loggers: {  
165 - infoFile: {  
166 - name: 'info',  
167 - level: 'info',  
168 - filename: '/Data/logs/yohoblk-wap/info/info.log',  
169 - maxFiles: 1,  
170 - tailable: true,  
171 - maxsize: Math.pow(1024, 3),  
172 - timestamp() {  
173 - return new Date().toString();  
174 - }  
175 - },  
176 - errorFile: {  
177 - name: 'error',  
178 - level: 'error',  
179 - filename: '/Data/logs/yohoblk-wap/error/error.log',  
180 - maxFiles: 1,  
181 - tailable: true,  
182 - maxsize: Math.pow(1024, 3),  
183 - handleExceptions: true,  
184 - timestamp() {  
185 - return new Date().toString();  
186 - }  
187 - },  
188 - console: {  
189 - close: true,  
190 - level: 'info',  
191 - colorize: 'all',  
192 - prettyPrint: true,  
193 - debugStdout: true  
194 - }  
195 - },  
196 - report: {  
197 - host: 'influxdblog.web.yohoops.org',  
198 - port: 8086,  
199 - db: 'web-apm' 135 + if (options.attempt < 10) {
  136 + return Math.min(options.attempt * 100, 1000);
  137 + } else if (options.attempt > 10 && options.attempt < 100) {
  138 + return 1000;
  139 + } else {
  140 + return 1000 * 10;
  141 + }
  142 + }
  143 + },
  144 + session: {
  145 + host: 'redis.web.yohoops.org',
  146 + port: '6379',
  147 + pass: 'redis9646',
  148 + prefix: 'yohoblk_session:'
  149 + }
  150 + },
  151 + useOneapm: true,
  152 + useCache: true,
  153 + interfaceShunt: {
  154 + useInterfaceShunt: false,
  155 + tencentServers: {
  156 + api: ['123.206.1.98', '123.206.2.80'],
  157 + service: ['123.206.1.98', '123.206.2.80']
  158 + },
  159 + awsServers: {
  160 + api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',
  161 + service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'
  162 + }
  163 + },
  164 + loggers: {
  165 + infoFile: {
  166 + name: 'info',
  167 + level: 'info',
  168 + filename: '/Data/logs/yohoblk-wap/info/info.log',
  169 + maxFiles: 1,
  170 + tailable: true,
  171 + maxsize: Math.pow(1024, 3),
  172 + timestamp() {
  173 + return new Date().toString();
200 } 174 }
201 - }); 175 + },
  176 + errorFile: {
  177 + name: 'error',
  178 + level: 'error',
  179 + filename: '/Data/logs/yohoblk-wap/error/error.log',
  180 + maxFiles: 1,
  181 + tailable: true,
  182 + maxsize: Math.pow(1024, 3),
  183 + handleExceptions: true,
  184 + timestamp() {
  185 + return new Date().toString();
  186 + }
  187 + },
  188 + console: {
  189 + close: true,
  190 + level: 'info',
  191 + colorize: 'all',
  192 + prettyPrint: true,
  193 + debugStdout: true
  194 + }
  195 + },
  196 + report: {
  197 + host: 'influxdblog.web.yohoops.org',
  198 + port: 8086,
  199 + db: 'web-apm'
  200 + }
  201 + });
202 } else if (isTest) { 202 } else if (isTest) {
203 - Object.assign(module.exports, {  
204 - appName: 'm.yohoblk.com for test',  
205 - domains: {  
206 - api: process.env.TEST_API || 'http://api-test1.yohops.com:9999/',  
207 - service: process.env.TEST_SERVICE || 'http://service-test1.yohops.com:9999/',  
208 - singleApi: process.env.TEST_SINGLE || 'http://api-test1.yohops.com:9999/'  
209 - },  
210 - useOneapm: true,  
211 - useCache: true  
212 - }); 203 + Object.assign(module.exports, {
  204 + appName: 'm.yohoblk.com for test',
  205 + domains: {
  206 + api: process.env.TEST_API || 'http://api-test3.dev.yohocorp.com/',
  207 + service: process.env.TEST_SERVICE || 'http://api-test3.dev.yohocorp.com/',
  208 + singleApi: process.env.TEST_SINGLE || 'http://api-test3.dev.yohocorp.com/'
  209 + },
  210 + useOneapm: true,
  211 + useCache: true
  212 + });
213 } 213 }
@@ -57,7 +57,7 @@ exports.createApp = async (app) => { @@ -57,7 +57,7 @@ exports.createApp = async (app) => {
57 res.status(200).end(); 57 res.status(200).end();
58 }); 58 });
59 59
60 - app.use(favicon(path.join(__dirname, '/public/favicon.ico'))); 60 + app.use(favicon(path.join(__dirname, '/favicon.ico')));
61 app.use(express.static(path.join(__dirname, 'public'))); 61 app.use(express.static(path.join(__dirname, 'public')));
62 62
63 // 添加请求上下文 63 // 添加请求上下文
1 #!/bin/bash 1 #!/bin/bash
2 wordir=$2 2 wordir=$2
  3 +needBuild=$1
3 cd $wordir 4 cd $wordir
4 -rm -rf yoho-blk-wap.tar.gz  
5 -yarn  
6 -if [[ $1 == "TEST1" ]] || [[ $1 == "TEST2" ]] || [[ $1 == "TEST3" ]]  
7 -then  
8 -yarn build 5 +yarn --production=false
  6 +if [ "$needBuild" == "YES" ];then
  7 + yarn build
9 fi 8 fi
10 -tar -czvf yoho-blk-wap.tar.gz * 9 +yarn build:node --build=$needBuild
  10 +/usr/local/bin/node-prune ./dist/node/node_modules
@@ -44,7 +44,7 @@ const routes = [ @@ -44,7 +44,7 @@ const routes = [
44 44
45 const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV; 45 const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
46 let renderer; 46 let renderer;
47 -let template = fs.readFileSync(path.join(__dirname, '../../src/index.html'), 'utf-8'); 47 +let template = fs.readFileSync(path.join(__dirname, '../../index.html'), 'utf-8');
48 48
49 const microCache = LRU({ // eslint-disable-line 49 const microCache = LRU({ // eslint-disable-line
50 max: 1000, 50 max: 1000,
No preview for this file type
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 "server": "NODE_ENV=production webpack --config ./build/webpack.server.conf.js", 14 "server": "NODE_ENV=production webpack --config ./build/webpack.server.conf.js",
15 "static": "webpack-dev-server --config ./public/build/webpack.dev.config.js", 15 "static": "webpack-dev-server --config ./public/build/webpack.dev.config.js",
16 "build": "NODE_ENV=production webpack --config ./public/build/webpack.prod.config.js && node ./build/build.js", 16 "build": "NODE_ENV=production webpack --config ./public/build/webpack.prod.config.js && node ./build/build.js",
  17 + "build:node": "node ./build/node-build.js",
17 "performance": "NODE_ENV=performance webpack --config ./public/build/webpack.prod.config.js", 18 "performance": "NODE_ENV=performance webpack --config ./public/build/webpack.prod.config.js",
18 "online": "NODE_ENV=\"production\" node app.js", 19 "online": "NODE_ENV=\"production\" node app.js",
19 "debug": "DEBUG=\"express:*\" nodemon -e js,hbs -i public/ app.js", 20 "debug": "DEBUG=\"express:*\" nodemon -e js,hbs -i public/ app.js",
@@ -48,20 +49,20 @@ @@ -48,20 +49,20 @@
48 "request-promise": "^4.2.1", 49 "request-promise": "^4.2.1",
49 "serve-favicon": "^2.3.0", 50 "serve-favicon": "^2.3.0",
50 "uuid": "^2.0.2", 51 "uuid": "^2.0.2",
51 - "vue": "^2.5.13", 52 + "vue": "=2.5.13",
52 "vue-awesome-swiper": "^3.0.6", 53 "vue-awesome-swiper": "^3.0.6",
53 "vue-hot-reload-api": "^1.2.0", 54 "vue-hot-reload-api": "^1.2.0",
54 "vue-html-loader": "^1.2.4", 55 "vue-html-loader": "^1.2.4",
55 "vue-infinite-scroll": "^2.0.1", 56 "vue-infinite-scroll": "^2.0.1",
56 "vue-lazyload": "^1.0.6", 57 "vue-lazyload": "^1.0.6",
57 - "vue-loader": "^13.7.0",  
58 - "vue-router": "^3.0.1",  
59 - "vue-server-renderer": "^2.5.13", 58 + "vue-loader": "=13.7.0",
  59 + "vue-router": "=3.0.1",
  60 + "vue-server-renderer": "=2.5.13",
60 "vue-style-loader": "^3.0.3", 61 "vue-style-loader": "^3.0.3",
61 "vue-swipe": "^2.0.3", 62 "vue-swipe": "^2.0.3",
62 "vue-template-compiler": "^2.5.13", 63 "vue-template-compiler": "^2.5.13",
63 "vue-touch": "2.0.0-beta.3", 64 "vue-touch": "2.0.0-beta.3",
64 - "vuex": "^3.0.1", 65 + "vuex": "=3.0.1",
65 "winston": "^2.2.0", 66 "winston": "^2.2.0",
66 "yoho-cookie": "1.2.0", 67 "yoho-cookie": "1.2.0",
67 "yoho-jquery": "^2.2.4", 68 "yoho-jquery": "^2.2.4",
@@ -102,7 +103,7 @@ @@ -102,7 +103,7 @@
102 "jquery": "2.2.4", 103 "jquery": "2.2.4",
103 "memory-fs": "^0.4.1", 104 "memory-fs": "^0.4.1",
104 "node-sass": "^4.5.3", 105 "node-sass": "^4.5.3",
105 - "nodemon": "^1.10.2", 106 + "nodemon": "^1.17.5",
106 "postcss-assets": "^4.1.0", 107 "postcss-assets": "^4.1.0",
107 "postcss-cachebuster": "^0.1.3", 108 "postcss-cachebuster": "^0.1.3",
108 "postcss-calc": "^5.3.1", 109 "postcss-calc": "^5.3.1",
@@ -131,7 +132,7 @@ @@ -131,7 +132,7 @@
131 "webpack-bundle-analyzer": "^2.9.1", 132 "webpack-bundle-analyzer": "^2.9.1",
132 "webpack-dashboard": "^0.1.8", 133 "webpack-dashboard": "^0.1.8",
133 "webpack-dev-middleware": "^1.12.0", 134 "webpack-dev-middleware": "^1.12.0",
134 - "webpack-dev-server": "^2.6.1", 135 + "webpack-dev-server": "^3.1.4",
135 "webpack-hot-middleware": "^2.18.2", 136 "webpack-hot-middleware": "^2.18.2",
136 "webpack-merge": "^4.1.0", 137 "webpack-merge": "^4.1.0",
137 "webpack-node-externals": "^1.6.0", 138 "webpack-node-externals": "^1.6.0",
@@ -5,7 +5,7 @@ const UglifyJsParallelPlugin = require('webpack-uglify-parallel'); @@ -5,7 +5,7 @@ const UglifyJsParallelPlugin = require('webpack-uglify-parallel');
5 const os = require('os'); 5 const os = require('os');
6 const pkg = require('../../package.json'); 6 const pkg = require('../../package.json');
7 const path = require('path'); 7 const path = require('path');
8 -const distDir = path.join(__dirname, `../dist/${pkg.name}`); 8 +const distDir = path.join(__dirname, `../../dist/${pkg.name}`);
9 9
10 let base = require('./webpack.base.config'); 10 let base = require('./webpack.base.config');
11 11
This diff could not be displayed because it is too large.