添加 server 启动

This commit is contained in:
sin 2019-03-26 13:18:53 +08:00
parent 2d978d5168
commit 30c2379a7c
9 changed files with 195 additions and 0 deletions

View File

@ -1,6 +1,7 @@
.DS_Store .DS_Store
node_modules node_modules
/dist /dist
dist
# local env files # local env files
.env.local .env.local

View File

@ -0,0 +1,25 @@
# 使用说明
### 第一步
```
npm install
```
### 第二步
复制文件到 server 目录
```
cp -rf dist server
```
### 第三步
```
node server.prod
```

View File

@ -0,0 +1,12 @@
//
// 粉笔:
// 输出不同颜色的提示信息
const chalk = require('chalk');
module.exports = {
chalkError: chalk.red,
chalkSuccess: chalk.green,
chalkWarning: chalk.yellow,
chalkProcessing: chalk.blue,
};

View File

@ -0,0 +1,10 @@
module.exports = {
'/admin-api -> http://180.167.213.26:18083/': {
changeOrigin: true,
pathRewrite: {},
},
'/server/api -> https://preview.pro.ant.design/': {
changeOrigin: true,
pathRewrite: { '^/server': '' },
},
};

View File

@ -0,0 +1,10 @@
{
"name": "browser-work-server",
"description": "node server",
"dependencies": {
"express": "^4.16.3",
"object-assign": "4.1.1",
"chalk": "2.4.1",
"http-proxy-middleware": "^0.18.0"
}
}

View File

@ -0,0 +1,11 @@
{
"name": "admin-web",
"script": "./server.prod.js",
"instances": "2",
"env": {
"NODE_ENV": "development"
},
"env_production": {
"NODE_ENV": "production"
}
}

View File

@ -0,0 +1,36 @@
const path = require('path');
const express = require('express');
const { chalkSuccess } = require('./config/chalk.config');
const proxyConfig = require('./config/proxy.prod.config');
const proxyBuild = require('./utils/proxy.build');
// create app server
const app = express();
const port = 3000;
// host proxy
app.use(proxyBuild(proxyConfig));
// use index.html
app.use(express.static(path.join(__dirname, 'dist/css')));
app.use(express.static(path.join(__dirname, 'dist/js')));
app.use(express.static(path.join(__dirname, 'dist')));
app.use((req, res) => {
res.sendFile(path.join(__dirname, 'dist', 'index.html'));
});
app.listen(port, error => {
if (error) {
console.error(error);
} else {
console.info(
chalkSuccess(
'==> 🌎 Listening on port %s. ' + 'Open up http://localhost:%s/ in your browser.'
),
port,
port
);
}
});

View File

@ -0,0 +1,44 @@
# 安装依赖包
cd admin-web
cnpm install
# 开始构建
#npm run build
# 创建 app 运行目录
rm -rf app
mkdir app
# 复制配置文件
cp -rf config/server app/
# npm 构建项目
npm run build:admin-web
# 复制文件到 server 努力
cp -rf dist app/server
# 复制文件到 project 目录执行
if [ ! -d "/work2/project/admin-web/server/dist" ]; then
rm -rf /work2/project/admin-web/server/dist
fi
cp -rf app/server /work2/project/admin-web
# 安装 server 依赖项
cd /work2/project/admin-web/server
cnpm install
# 启动服务
pm2 restart pm2.json

View File

@ -0,0 +1,46 @@
const proxy = require('http-proxy-middleware');
const ObjectAssign = require('object-assign');
const { chalkError, chalkSuccess } = require('../config/chalk.config');
/**
*
* key :
* [0]: /api
* [1]: target url
*
* 预计写法
* 1 /api -> baidu.com : { }
* 2 /user : function() { return {} }
*
* @param config
*/
module.exports = function(config) {
console.info(chalkSuccess('build proxy.%s.config 配置!'), process.env.NODE_ENV);
const proxys = [];
if (!config) {
console.log(chalkError('proxy.%s.config 没有配置!'), process.env.NODE_ENV);
}
for (const key in config) {
if (/->/.test(key)) {
const keys = key.toString().split('->');
const source = keys[0].trim();
const target = keys[1].trim();
if (typeof config !== 'object') {
console.log(
chalkError('%s: proxy.%s.config 初始化失败 config 类型为 object!'),
key,
process.env.NODE_ENV
);
break;
}
proxys.push(proxy(source, ObjectAssign({ target }, config[key])));
}
}
return proxys;
};