添加 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
|
.DS_Store
|
||||||
node_modules
|
node_modules
|
||||||
/dist
|
/dist
|
||||||
|
dist
|
||||||
|
|
||||||
# local env files
|
# local env files
|
||||||
.env.local
|
.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