mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-08 17:37:24 +08:00
42 lines
1.5 KiB
JavaScript
42 lines
1.5 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.createReplacePlugin = void 0;
|
|
const magic_string_1 = __importDefault(require("magic-string"));
|
|
exports.createReplacePlugin = (test, replacements, sourcemap) => {
|
|
const pattern = new RegExp('\\b(' +
|
|
Object.keys(replacements)
|
|
.map((str) => {
|
|
return str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
|
|
})
|
|
.join('|') +
|
|
')\\b', 'g');
|
|
return {
|
|
name: 'vite:replace',
|
|
transform(code, id) {
|
|
if (test(id)) {
|
|
const s = new magic_string_1.default(code);
|
|
let hasReplaced = false;
|
|
let match;
|
|
while ((match = pattern.exec(code))) {
|
|
hasReplaced = true;
|
|
const start = match.index;
|
|
const end = start + match[0].length;
|
|
const replacement = '' + replacements[match[1]];
|
|
s.overwrite(start, end, replacement);
|
|
}
|
|
if (!hasReplaced) {
|
|
return null;
|
|
}
|
|
const result = { code: s.toString() };
|
|
if (sourcemap) {
|
|
result.map = s.generateMap({ hires: true });
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
//# sourceMappingURL=buildPluginReplace.js.map
|