permission

This commit is contained in:
2026-10-26 23:17:06 +08:00
parent c654b89647
commit d2dfb4069d
42 changed files with 3113 additions and 346 deletions
+5 -4
View File
@@ -12,15 +12,15 @@ function readBody(req: NodeJS.ReadableStream): Promise<string> {
}
/**
* 本地 mock 中间件:仅在 dev 且 VITE_USE_MOCK=true 时拦截 /api/v1 请求。
* 本地 mock 中间件:始终挂载于 dev,但仅命中「全局 mock 开启」或标记 alwaysMock 的规则。
* 这样新增页面的接口可被单独 mock,而项目其余接口仍走真实后端代理。
* 不引入三方 mock 依赖,避免污染生产依赖树。
*/
export function mockPlugin(enabled = true): Plugin {
export function mockPlugin(globalMock = false): Plugin {
return {
name: 'portal-mock',
apply: 'serve',
configureServer(server) {
if (!enabled) return
server.middlewares.use((req, res, next) => {
if (!req.url?.startsWith(MOCK_PREFIX)) return next()
@@ -30,7 +30,8 @@ export function mockPlugin(enabled = true): Plugin {
const rule = mockRules.find(
(item) =>
item.method === (req.method ?? 'GET').toUpperCase() &&
item.pattern.test(requestUrl.pathname),
item.pattern.test(requestUrl.pathname) &&
(globalMock || item.alwaysMock === true),
)
if (!rule) return next()