添加 server 启动
This commit is contained in:
parent
2d978d5168
commit
30c2379a7c
1
mobile-web/.gitignore
vendored
1
mobile-web/.gitignore
vendored
@ -1,6 +1,7 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
dist
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
|
25
mobile-web/server/README.md
Normal file
25
mobile-web/server/README.md
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
# 使用说明
|
||||
|
||||
|
||||
### 第一步
|
||||
|
||||
```
|
||||
npm install
|
||||
|
||||
```
|
||||
|
||||
|
||||
### 第二步
|
||||
复制文件到 server 目录
|
||||
|
||||
```
|
||||
cp -rf dist server
|
||||
```
|
||||
|
||||
### 第三步
|
||||
|
||||
```
|
||||
node server.prod
|
||||
```
|
||||
|
12
mobile-web/server/config/chalk.config.js
Normal file
12
mobile-web/server/config/chalk.config.js
Normal file
@ -0,0 +1,12 @@
|
||||
//
|
||||
// 粉笔:
|
||||
// 输出不同颜色的提示信息
|
||||
|
||||
const chalk = require('chalk');
|
||||
|
||||
module.exports = {
|
||||
chalkError: chalk.red,
|
||||
chalkSuccess: chalk.green,
|
||||
chalkWarning: chalk.yellow,
|
||||
chalkProcessing: chalk.blue,
|
||||
};
|
10
mobile-web/server/config/proxy.prod.config.js
Normal file
10
mobile-web/server/config/proxy.prod.config.js
Normal 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': '' },
|
||||
},
|
||||
};
|
10
mobile-web/server/package.json
Normal file
10
mobile-web/server/package.json
Normal 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"
|
||||
}
|
||||
}
|
11
mobile-web/server/pm2.json
Normal file
11
mobile-web/server/pm2.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "admin-web",
|
||||
"script": "./server.prod.js",
|
||||
"instances": "2",
|
||||
"env": {
|
||||
"NODE_ENV": "development"
|
||||
},
|
||||
"env_production": {
|
||||
"NODE_ENV": "production"
|
||||
}
|
||||
}
|
36
mobile-web/server/server.prod.js
Normal file
36
mobile-web/server/server.prod.js
Normal 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
|
||||
);
|
||||
}
|
||||
});
|
44
mobile-web/server/shell.sh
Normal file
44
mobile-web/server/shell.sh
Normal 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
|
46
mobile-web/server/utils/proxy.build.js
Normal file
46
mobile-web/server/utils/proxy.build.js
Normal 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;
|
||||
};
|
Loading…
Reference in New Issue
Block a user