You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.4 KiB
61 lines
2.4 KiB
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.uniConsolePlugin = void 0;
|
|
const debug_1 = __importDefault(require("debug"));
|
|
const pluginutils_1 = require("@rollup/pluginutils");
|
|
const utils_1 = require("../utils");
|
|
const console_1 = require("../../logs/console");
|
|
const utils_2 = require("../../vite/utils/utils");
|
|
const filter_1 = require("../../filter");
|
|
const debugConsole = (0, debug_1.default)('uni:console');
|
|
function uniConsolePlugin(options) {
|
|
const filter = (0, pluginutils_1.createFilter)(options.include, options.exclude);
|
|
let resolvedConfig;
|
|
let dropConsole = false;
|
|
return {
|
|
name: 'uni:console',
|
|
enforce: 'pre',
|
|
configResolved(config) {
|
|
resolvedConfig = config;
|
|
// 理论上发行模式就不应该有这个逻辑了,只不过为了尽量不引发兼容性问题,目前严谨一些判断是否配置了 drop_console
|
|
if (process.env.NODE_ENV !== 'development') {
|
|
const compressOptions = resolvedConfig.build.terserOptions?.compress;
|
|
if (compressOptions && typeof compressOptions === 'object') {
|
|
dropConsole = !!compressOptions.drop_console;
|
|
}
|
|
}
|
|
},
|
|
transform(code, id) {
|
|
if (dropConsole) {
|
|
return;
|
|
}
|
|
if ((0, filter_1.isRenderjs)(id) || (0, filter_1.isWxs)(id)) {
|
|
return {
|
|
code: (0, console_1.restoreConsoleExpr)(code),
|
|
map: { mappings: '' },
|
|
};
|
|
}
|
|
if (!filter(id))
|
|
return null;
|
|
if (!(0, utils_1.isJsFile)(id))
|
|
return null;
|
|
let { filename } = (0, utils_1.parseVueRequest)(id);
|
|
if (options.filename) {
|
|
filename = options.filename(filename);
|
|
}
|
|
if (!filename) {
|
|
return null;
|
|
}
|
|
if (!code.includes('console.')) {
|
|
return null;
|
|
}
|
|
debugConsole(id);
|
|
return (0, console_1.rewriteConsoleExpr)(options.method, id, filename, code, (0, utils_2.withSourcemap)(resolvedConfig));
|
|
},
|
|
};
|
|
}
|
|
exports.uniConsolePlugin = uniConsolePlugin;
|