express起一个代理服务器,webpack-dev-server同时起多个
由于系统业务比较复杂,微前端(多页应用)实现期望用一个app一个webpack的形式,这样可以更好隔离,而且每个app的webpack config可以定制。
Nginx在前端项目中安装比较麻烦,所以考虑用nodejs来代理,社区比较成熟的node代理显然就是express的http-proxy-middleware了:
var express = require('express')
var proxy = require('http-proxy-middleware')
var rewrite = require('express-urlrewrite')
var app = express()
let options = {
'/report/template': {
target: 'http://www.wenming.cn',
pathRewrite: {
'^/report/template': '',
},
headers: {
"Host": "www.wenming.cn",
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cookie": "wdcid=118bf0416992ec45; wdlast=1553783233; Hm_lvt_3bdce7455c04dfb8cf1a26c3ac808bea=1553783233; Hm_lpvt_3bdce7455c04dfb8cf1a26c3ac808bea=1553783233",
}
},
'/report':{
target: 'http://localhost:8090',
pathRewrite: {
'^/report': '',
},
}
}
app.use('/app/home', (req,res,next) => {
req.originalUrl = req.originalUrl.replace(/^\/app\/home/, '')
next()
});
app.use(rewrite('/app/home/*', '/$1'))
function proxyFactory(source, option) {
app.use(source, proxy(option))
}
for (let key in options) {
proxyFactory(key, options[key])
}
app.use('/', (req, res) => {
res.send('not found!!')
})
app.listen(3000)
webpack-dev-server同时起多个:
const execa = require('execa')
execa('webpack-dev-server', ['--entry', './apps/alarm.js', '--port', '8044', '--config', './webpack.js'], {stdio: 'inherit'})
execa('webpack-dev-server', ['--entry', './apps/report.js', '--port', '8045', '--config', './webpack.js'], {stdio: 'inherit'})
express起一个代理服务器,webpack-dev-server同时起多个的更多相关文章
- 笔记:配置 webpack dev server
笔记:配置 webpack dev server 安装 webpack-dev-server 组件 配置 webpack.config.js 配置 增加 html-webpack-plugin 组件 ...
- [Webpack] Access Webpack Dev Server from Mobile Safari on an iPhone
Testing your sites on mobile devices is a critical part of the development process. Webpack dev serv ...
- 配置Webpack Dev Server 实战操作方法步骤
本文摘要:配置 Webpack Dev Server 可以解决本地开发前端应用时,手动执行 webpack 命令或 yarn build 命令,再去浏览器中访问 dist/index.html 的麻烦 ...
- webpack dev server 和 sublime text 配合时需要注意的地方
参考:https://webpack.js.org/guides/development/ Adjusting Your Text Editor Some text editors have a &q ...
- webpack dev server 配置 启动项目报错Error: listen EADDRINUSE
Error: listen EADDRINUSE 0.0.0.0:5601 它的意思是,端口5601被其他进程占用. 切换端口即可解决问题
- 解决新版本webpack vue-cli生成文件没有dev.server.js问题
新版本webpack生成的dev.server.js 在webpack.dev.conf.js中 webpack.dev.conf.js const axios = require('axios') ...
- webpack 4 & dev server
webpack 4 & dev server proxy https://webpack.js.org/configuration/dev-server/#devserverproxy htt ...
- 利用express启一个server服务
安装express $ npm install express --save 在node.js中,我们最常用的框架就是express Express 是一个基于 Node.js 平台的极简.灵活的 w ...
- Vue.js如何搭建本地dev server和json-server 模拟请求服务器
前言:vue-cli(版本更新),由原来的2.8.1升级为2.9.1.主要改变是原来在build文件夹下的dev-server.js删掉了,增加了webpack.dev.conf.js. 所以这次讲的 ...
随机推荐
- Android com.daimajia.slider.library.SliderLayout 去掉底部半透明标题背景
com.daimajia.slider.library.SliderLayout 是挺好用的轮播图控件,但是底部灰色背景有时候用不到,所以得去掉. sliderLayout.setCustomAnim ...
- sql面试 查找每个班级的前5名学生(取分类数据的前几条数据)
关键字PARTITION BY 自己看代码喽~ SELECT * FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY ClassType ORDER BY Sc ...
- sqlserver数据库NULL类型注意事项
1,变量NULL类型赋值需要初始化 2,判断条件
- Python基础之if判断,while循环,循环嵌套
if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 . ...
- 如何改善SSH连接过慢(效率)
+++++++++++++++++++++++++++++++++++++++++问题:通过SSH链接远程Linux主机过慢.重点:学习如何通过调整ssh_config配置文件,提高SSH连接效率.时 ...
- selenium webdriver 如何实现将浏览器滚动条移动到某个位置
说明: 在做selenium webdriver 在做UI 自动化时,有些页面时使用懒加载的形式显示页面图片,如果在不向下移动滚动条时,获取到的图片会是网站的默认图片和真实的图片不相符. 所以研究了 ...
- MyBatis 3源码解析(二)
二.获取SqlSession对象 1.首先调用DefaultSqlSessionFactory 的 openSession 方法,代码如下: @Override public SqlSession o ...
- RabbitMQ消息队列
RabbitMQ消息队列 !!! 注意,保证服务器的内存足够,磁盘足够,以及删除/etc/hosts中没有用的dns解析 # 优点,能够保证消息数据持久化,不丢失,支持高并发 安装学习rabbitm ...
- 一、查看MVC4还是MVC5
一.查看MVC版本找到那个dll.属性.就可以看到版本 二.MVC添加WebAPI Visual Studio 已向项目“Web”添加 ASP.NET Web API 2 的 全部集合 个依赖项. 项 ...
- Python——pyqt5——消息框(QMessageBox)
一.提供的类型 QMessageBox.information 信息框 QMessageBox.question 问答框 QMessageBox.warning 警告 QMessageBox.ctit ...