Authored by 陈峰

commit

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: {
@@ -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",
@@ -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