37 lines
1.7 KiB
JavaScript
37 lines
1.7 KiB
JavaScript
"use strict";
|
||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
};
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
exports.uniTimestampMiddleware = void 0;
|
||
const url_1 = require("url");
|
||
const path_1 = __importDefault(require("path"));
|
||
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
|
||
function uniTimestampMiddleware(server) {
|
||
return async function timestampMiddleware(req, _, next) {
|
||
// 当页面被作为组件引用时,会导致history刷新该页面直接显示js代码,因为该页面已被缓存为了module,
|
||
// https://github.com/vitejs/vite/blob/702d50315535c189151c67d33e4a22124f926bed/packages/vite/src/node/server/transformRequest.ts#L52
|
||
// /pages/tabBar/API/API
|
||
let { url } = req;
|
||
if (url) {
|
||
const base = server.config.base;
|
||
const parsed = (0, url_1.parse)(url);
|
||
let newUrl = url;
|
||
if ((parsed.pathname || '/').startsWith(base)) {
|
||
newUrl = newUrl.replace(base, '/');
|
||
}
|
||
if (!path_1.default.extname(newUrl) &&
|
||
!newUrl.endsWith('/') &&
|
||
!newUrl.includes('?')) {
|
||
const module = await server.moduleGraph.getModuleByUrl(newUrl);
|
||
if (module && module.file && uni_cli_shared_1.EXTNAME_VUE_RE.test(module.file)) {
|
||
// /pages/tabBar/API/API => /pages/tabBar/API/API?__t__=time
|
||
req.url = url + '?__t__=' + Date.now();
|
||
}
|
||
}
|
||
}
|
||
next();
|
||
};
|
||
}
|
||
exports.uniTimestampMiddleware = uniTimestampMiddleware;
|