From 4bdf615f689f0c44ead5c2a9727b8e758e3b5f3b Mon Sep 17 00:00:00 2001 From: zhangyuang Date: Sat, 20 Mar 2021 15:04:36 +0800 Subject: [PATCH] fix: http-proxy-middleware types --- packages/server-utils/src/cwd.ts | 4 ++-- packages/server-utils/src/middlewares/proxy.ts | 7 +++++-- packages/types/package.json | 1 - packages/types/src/config.ts | 9 +-------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/packages/server-utils/src/cwd.ts b/packages/server-utils/src/cwd.ts index b7b209894..b3f45dace 100644 --- a/packages/server-utils/src/cwd.ts +++ b/packages/server-utils/src/cwd.ts @@ -1,7 +1,7 @@ import * as fs from 'fs' import { promises } from 'fs' import { join, isAbsolute } from 'path' -import { IConfig } from 'ssr-types' +import { UserConfig } from 'ssr-types' const getCwd = () => { const cwd = process.cwd() @@ -36,7 +36,7 @@ const getVuexStoreFilePath = () => { return join(getFeDir(), './store') } -const getUserConfig = (): IConfig => { +const getUserConfig = (): UserConfig => { // 生产环境如果有 config.prod 则读取 const isProd = process.env.NODE_ENV === 'production' const hasProdConfig = fs.existsSync(join(getCwd(), './config.prod.js')) diff --git a/packages/server-utils/src/middlewares/proxy.ts b/packages/server-utils/src/middlewares/proxy.ts index f46f806e8..41ba75745 100644 --- a/packages/server-utils/src/middlewares/proxy.ts +++ b/packages/server-utils/src/middlewares/proxy.ts @@ -1,7 +1,9 @@ import { createProxyMiddleware } from 'http-proxy-middleware' -import { Proxy, proxyOptions } from 'ssr-types' import { loadConfig } from '../loadConfig' +interface proxyOptions { + express?: boolean +} const koaConnect = require('koa2-connect') function onProxyReq (proxyReq: any, req: any) { @@ -15,7 +17,7 @@ const getDevProxyMiddlewaresArr = (options?: proxyOptions) => { const express = options ? options.express : false const proxyMiddlewaresArr: any[] = [] - function registerProxy (proxy: Proxy) { + function registerProxy (proxy: any) { for (const path in proxy) { const options = proxy[path] // 如果底层服务端框架是基于 express的。则不需要用 koaConnect 转换为 koa 中间件 @@ -25,6 +27,7 @@ const getDevProxyMiddlewaresArr = (options?: proxyOptions) => { } proxy && registerProxy(proxy) + if (isDev) { // 在本地开发阶段代理 serverPort 的资源到 fePort // 例如 http://localhost:3000/static/js/page.chunk.js -> http://localhost:8000/static/js/page.chunk.js diff --git a/packages/types/package.json b/packages/types/package.json index 9719116a4..f06d7b5a6 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -30,7 +30,6 @@ "dependencies": { "@midwayjs/faas-typings": "^2.7.0", "@types/express": "^4.17.11", - "@types/http-proxy-middleware": "^0.19.3", "@types/koa": "^2.11.3", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index 27dd8efca..e84c89b5b 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -1,5 +1,4 @@ import { Configuration, Options } from 'webpack' -import * as httpProxyMiddleware from 'http-proxy-middleware' import { Config } from './third-party/webpack-chain' export interface IConfig { cwd: string @@ -14,6 +13,7 @@ export interface IConfig { clientOutPut: string serverOutPut: string } + proxy: any cssOrder: string[] jsOrder: string[] staticPrefix: string @@ -33,7 +33,6 @@ export interface IConfig { cloudIDE?: boolean cssModulesWhiteList: RegExp[] prefix?: string - proxy: Proxy dynamic: boolean feFramework: string mode: string @@ -47,12 +46,6 @@ export interface IConfig { type Optional = { [key in keyof T]?: T[key] } export type UserConfig = Optional -export interface Proxy { - [key: string]: httpProxyMiddleware.Options -} -export interface proxyOptions { - express?: boolean -} export interface StyleOptions { rule: string