| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.errorFormatter = exports.removeWarnFormatter = exports.removeInfoFormatter = exports.h5ServeFormatter = exports.formatAtFilename = void 0;
- const fs_1 = __importDefault(require("fs"));
- const path_1 = __importDefault(require("path"));
- const picocolors_1 = __importDefault(require("picocolors"));
- const shared_1 = require("@vue/shared");
- const utils_1 = require("../utils");
- const constants_1 = require("../constants");
- const ast_1 = require("../vite/utils/ast");
- const utils_2 = require("../vite/plugins/vitejs/utils");
- const SIGNAL_H5_LOCAL = ' ➜ Local:';
- const SIGNAL_H5_NETWORK = ' ➜ Network:';
- const networkLogs = [];
- const ZERO_WIDTH_CHAR = {
- NOTE: '',
- WARNING: '\u200B',
- ERROR: '\u200C',
- backup0: '\u200D',
- backup1: '\u200E',
- backup2: '\u200F',
- backup3: '\uFEFF',
- };
- function overridedConsole(name, oldFn, char) {
- console[name] = function (...args) {
- oldFn.apply(this, args.map((arg) => {
- let item;
- if (typeof arg !== 'object') {
- item = `${char}${arg}${char}`;
- }
- else {
- item = `${char}${JSON.stringify(arg)}${char}`;
- }
- return item;
- }));
- };
- }
- if (typeof console !== 'undefined') {
- overridedConsole('warn', console.log, ZERO_WIDTH_CHAR.WARNING);
- // overridedConsole('error', console.error, ZERO_WIDTH_CHAR.ERROR)
- }
- function formatAtFilename(filename, line, column) {
- const file = path_1.default.relative(process.env.UNI_INPUT_DIR, filename.replace('\x00', '').split('?')[0]);
- return `at ${picocolors_1.default.cyan((0, utils_1.normalizePath)(file === 'pages-json-uts' ? 'pages.json' : file) +
- ':' +
- (line || 1) +
- ':' +
- (column || 0))}`;
- }
- exports.formatAtFilename = formatAtFilename;
- exports.h5ServeFormatter = {
- test(msg) {
- return msg.includes(SIGNAL_H5_LOCAL) || msg.includes(SIGNAL_H5_NETWORK);
- },
- format(msg) {
- if (msg.includes(SIGNAL_H5_NETWORK)) {
- networkLogs.push(msg.replace('➜ ', '*'));
- process.nextTick(() => {
- if (networkLogs.length) {
- // 延迟打印所有 network,仅最后一个 network 替换 ➜ 为 -,通知 hbx
- const len = networkLogs.length - 1;
- networkLogs[len] = networkLogs[len].replace('* Network', '- Network');
- console.log(networkLogs.join('\n'));
- networkLogs.length = 0;
- }
- });
- return '';
- }
- if (msg.includes(SIGNAL_H5_LOCAL)) {
- return msg.replace('➜ ', '-');
- }
- return msg.replace('➜ ', '*');
- },
- };
- const REMOVED_MSGS = [
- 'build started...',
- (msg) => {
- return /built in [0-9]+ms\./.test(msg);
- },
- 'watching for file changes...',
- ];
- exports.removeInfoFormatter = {
- test(msg) {
- return !!REMOVED_MSGS.find((m) => ((0, shared_1.isString)(m) ? msg.includes(m) : m(msg)));
- },
- format() {
- return '';
- },
- };
- const REMOVED_WARN_MSGS = [];
- exports.removeWarnFormatter = {
- test(msg) {
- return !!REMOVED_WARN_MSGS.find((m) => msg.includes(m));
- },
- format() {
- return '';
- },
- };
- exports.errorFormatter = {
- test(_, opts) {
- return !!(opts && opts.error);
- },
- format(_, opts) {
- return buildErrorMessage(opts.error, [], false);
- },
- };
- function buildErrorMessage(err, args = [], includeStack = true) {
- if (err.plugin) {
- args.push(`${picocolors_1.default.magenta('[plugin:' + err.plugin + ']')} ${picocolors_1.default.red(err.message)}`);
- if (err.loc &&
- err.hook === 'transform' &&
- err.plugin === 'rollup-plugin-dynamic-import-variables' &&
- err.id &&
- constants_1.EXTNAME_VUE_RE.test(err.id)) {
- try {
- const ast = (0, ast_1.parseVue)(fs_1.default.readFileSync(err.id, 'utf8'), []);
- const scriptNode = ast.children.find((node) => node.type === 1 /* NodeTypes.ELEMENT */ && node.tag === 'script');
- if (scriptNode) {
- const scriptLoc = scriptNode.loc;
- args.push(picocolors_1.default.yellow(pad((0, utils_2.generateCodeFrame)(scriptLoc.source, err.loc))));
- // correct error location
- err.loc.line = scriptLoc.start.line + err.loc.line - 1;
- }
- }
- catch (e) { }
- }
- }
- else {
- args.push(picocolors_1.default.red(err.message));
- }
- if (err.id) {
- args.push(formatAtFilename(err.id, err.loc?.line, err.loc?.column));
- }
- if (err.frame) {
- args.push(picocolors_1.default.yellow(pad(err.frame)));
- }
- if (includeStack && err.stack) {
- args.push(pad(cleanStack(err.stack)));
- }
- return args.join('\n');
- }
- function cleanStack(stack) {
- return stack
- .split(/\n/g)
- .filter((l) => /^\s*at/.test(l))
- .join('\n');
- }
- const splitRE = /\r?\n/;
- function pad(source, n = 2) {
- const lines = source.split(splitRE);
- return lines.map((l) => ` `.repeat(n) + l).join(`\n`);
- }
|