- 提交 jenkins 构建规则,和 node服务

This commit is contained in:
sin 2019-03-10 11:47:49 +08:00
parent 19eb551a88
commit 679a087e7c
8 changed files with 175 additions and 0 deletions

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,12 @@
module.exports = {
'/admin-api/': {
target: 'http://180.167.213.26:18083/',
changeOrigin: true,
pathRewrite: {},
},
'/server/api/': {
target: '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": "work-web",
"script": "/app/server.prod.js",
"instances": "2",
"env": {
"NODE_ENV": "development"
},
"env_production": {
"NODE_ENV": "production"
}
}

View File

@ -0,0 +1,35 @@
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/static')));
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,24 @@
# 安装依赖包
cd mall
cd admin-web
npm install
# 开始构建
npm run build
# 创建 app 运行目录
mkdir app
# 复制配置文件
cp -rf config/server app/
# 复制文件到 server 努力
cp -rf dist app/

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;
};