uni-ticket-system/node_modules/@dcloudio/uni-h5-vite/dist/plugin/index.js
2023-12-05 10:11:10 +08:00

51 lines
1.8 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.uniH5Plugin = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const handleHotUpdate_1 = require("./handleHotUpdate");
const transformIndexHtml_1 = require("./transformIndexHtml");
const configureServer_1 = require("./configureServer");
const uni_1 = require("./uni");
const config_1 = require("./config");
const shared_1 = require("@vue/shared");
function uniH5Plugin() {
const configOptions = {
resolvedConfig: null,
};
rewriteReadFileSync();
return {
name: 'uni:h5',
uni: (0, uni_1.createUni)(),
config: (0, config_1.createConfig)(configOptions),
configResolved(config) {
configOptions.resolvedConfig = config;
},
configureServer: (0, configureServer_1.createConfigureServer)(),
handleHotUpdate: (0, handleHotUpdate_1.createHandleHotUpdate)(),
transformIndexHtml: (0, transformIndexHtml_1.createTransformIndexHtml)(),
};
}
exports.uniH5Plugin = uniH5Plugin;
/**
* 重写 readFileSync
* 目前主要解决 scss 文件被 @import 的条件编译
*/
function rewriteReadFileSync() {
const { readFileSync } = fs_1.default;
fs_1.default.readFileSync = ((filepath, options) => {
const content = readFileSync(filepath, options);
if ((0, shared_1.isString)(filepath) &&
(0, shared_1.isString)(content) &&
path_1.default.extname(filepath) === '.scss' &&
content.includes('#endif')) {
return (0, uni_cli_shared_1.preCss)(content);
}
return content;
});
}