| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createPublicFileFilter = exports.initStatic = void 0;
- const fs_1 = __importDefault(require("fs"));
- const path_1 = __importDefault(require("path"));
- const debug_1 = __importDefault(require("debug"));
- const pluginutils_1 = require("@rollup/pluginutils");
- const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
- const static_1 = require("./middlewares/static");
- const debugStatic = (0, debug_1.default)('uni:static');
- /**
- * devServer时提供static等目录的静态资源服务
- * @param server
- * @param param
- */
- const initStatic = (server) => {
- const filter = createPublicFileFilter();
- const serve = (0, static_1.uniStaticMiddleware)({
- etag: true,
- resolve(pathname) {
- if (!filter(pathname)) {
- return;
- }
- const filename = path_1.default.join(process.env.UNI_INPUT_DIR, pathname);
- if (fs_1.default.existsSync(filename)) {
- debugStatic(filename, 'success');
- return filename;
- }
- else {
- debugStatic(filename, 'fail');
- }
- },
- });
- const viteServePublicMiddlewareIndex = server.middlewares.stack.findIndex((middleware) => {
- return (middleware.handle.name === 'viteServePublicMiddleware');
- });
- // 替换 vite 自带的 public middleware
- if (viteServePublicMiddlewareIndex > -1) {
- server.middlewares.stack.splice(viteServePublicMiddlewareIndex, 1, {
- route: '',
- handle: ((req, res, next) => {
- if ((0, uni_cli_shared_1.isImportRequest)(req.url) || (0, uni_cli_shared_1.isInternalRequest)(req.url)) {
- return next();
- }
- return serve(req, res, next);
- }),
- });
- }
- };
- exports.initStatic = initStatic;
- function createPublicFileFilter(base = '/') {
- const publicDir = (0, uni_cli_shared_1.normalizePath)(path_1.default.join(base, uni_cli_shared_1.PUBLIC_DIR + '/**/*'));
- const uniModulesDir = (0, uni_cli_shared_1.normalizePath)(path_1.default.join(base, 'uni_modules/*/' + uni_cli_shared_1.PUBLIC_DIR + '/**/*'));
- return (0, pluginutils_1.createFilter)([publicDir, uniModulesDir]);
- }
- exports.createPublicFileFilter = createPublicFileFilter;
|