1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- const path = require('path')
- const webpack = require('webpack')
- const webpackDevMiddleware = require('webpack-dev-middleware')
- const webpackHotMiddleware = require('webpack-hot-middleware')
- const proxy = require('http-proxy-middleware')
- const fs = require('fs')
- function createWebpackMiddleware(compiler, publicPath) {
- return webpackDevMiddleware(compiler, {
- logLevel: 'warn',
- publicPath,
- silent: true,
- stats: 'errors-only'
- })
- }
- module.exports = function addDevMiddlewares(app, webpackConfig) {
- const compiler = webpack(webpackConfig)
- const middleware = createWebpackMiddleware(
- compiler,
- webpackConfig.output.publicPath
- )
- // let proxyTarget = 'http://davinci.xt.wenhq.top:8083/'
- let proxyTarget = 'http://thgateway.xt.wenhq.top:8083/taihu-analysis/'
- const configFilePath = path.resolve(__dirname, '../config.json')
- if (fs.existsSync(configFilePath)) {
- const jsonConfig = fs.readFileSync(configFilePath)
- const { proxies } = JSON.parse(jsonConfig)
- proxyTarget = proxies.find((proxy) => proxy.enabled).target
- }
- app.use(
- ['/api/v3', '/image'],
- proxy({ target: proxyTarget, changeOrigin: true })
- )
- app.use(
- ['/taihu-auth'],
- proxy({ target: 'http://thgateway.xt.wenhq.top:8083/', changeOrigin: true })
- )
- app.use(middleware)
- app.use(webpackHotMiddleware(compiler))
- // Since webpackDevMiddleware uses memory-fs internally to store build
- // artifacts, we use it instead
- const fsMemory = middleware.fileSystem
- app.get('*', (req, res) => {
- fsMemory.readFile(
- path.join(compiler.outputPath, 'index.html'),
- (err, file) => {
- if (err) {
- res.sendStatus(404)
- } else {
- res.send(file.toString())
- }
- }
- )
- })
- }
|