51 lines
1.8 KiB
JavaScript
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;
|
|
});
|
|
}
|