From 21f68018e9def497bac1bf3be88629346764d73f Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Wed, 17 Nov 2021 14:38:42 +0800 Subject: [PATCH] chore(hbx): format log --- packages/uni-cli-shared/src/hbx/log.ts | 33 ++++++++++++++++++- packages/uni-cli-shared/src/logs/format.ts | 4 +++ .../src/vite/plugins/vitejs/plugins/css.ts | 16 +++++---- packages/vite-plugin-uni/package.json | 2 +- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/packages/uni-cli-shared/src/hbx/log.ts b/packages/uni-cli-shared/src/hbx/log.ts index 2defe352d..3983e7a89 100644 --- a/packages/uni-cli-shared/src/hbx/log.ts +++ b/packages/uni-cli-shared/src/hbx/log.ts @@ -55,7 +55,6 @@ export const removeWarnFormatter: Formatter = { } const fileRE = /file:\s(.*):(\d+):(\d+)/ - export const FilenameFormatter: Formatter = { test(msg) { return fileRE.test(msg) @@ -67,6 +66,18 @@ export const FilenameFormatter: Formatter = { }, } +const vueFileRE = /file:\s(.*)\?vue&type=(.*)/ +export const VueFilenameFormatter: Formatter = { + test(msg) { + return vueFileRE.test(msg) + }, + format(msg) { + return msg.replace(vueFileRE, (_, filename) => { + return `file: ${filename.split('?')[0]}` + }) + }, +} + export const HBuilderXFileFormatter: Formatter = { test(msg) { return fileRE.test(msg) @@ -91,3 +102,23 @@ export const HBuilderXFileFormatter: Formatter = { ) }, } + +export const HBuilderXVueFileFormatter: Formatter = { + test(msg) { + return vueFileRE.test(msg) + }, + format(msg) { + return ( + msg + // remove color + .replace(/\x1B[[(?);]{0,2}(;?\d)*./g, '') + .replace(vueFileRE, (_, filename) => { + return ( + 'at ' + + normalizePath(path.relative(process.env.UNI_INPUT_DIR, filename)) + + ':1' + ) + }) + ) + }, +} diff --git a/packages/uni-cli-shared/src/logs/format.ts b/packages/uni-cli-shared/src/logs/format.ts index cf1304386..36521264d 100644 --- a/packages/uni-cli-shared/src/logs/format.ts +++ b/packages/uni-cli-shared/src/logs/format.ts @@ -8,6 +8,8 @@ import { removeWarnFormatter, FilenameFormatter, HBuilderXFileFormatter, + HBuilderXVueFileFormatter, + VueFilenameFormatter, } from '../hbx/log' export interface Formatter { @@ -25,8 +27,10 @@ const initErrFormattersOnce = once(() => { } if (runByHBuilderX()) { errFormatters.push(HBuilderXFileFormatter) + errFormatters.push(HBuilderXVueFileFormatter) } else { errFormatters.push(FilenameFormatter) + errFormatters.push(VueFilenameFormatter) } }) diff --git a/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts b/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts index 80c5c52b6..72c7616dc 100644 --- a/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts +++ b/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts @@ -260,11 +260,11 @@ export function cssPostPlugin( const processChunkCSS = async ( css: string, { - dirname, + filename, inlined, minify, }: { - dirname: string + filename: string inlined: boolean minify: boolean } @@ -272,13 +272,17 @@ export function cssPostPlugin( // replace asset url references with resolved url. css = css.replace(assetUrlRE, (_, fileHash, postfix = '') => { return normalizePath( - path.relative(dirname, getAssetFilename(fileHash, config) + postfix) + path.relative( + path.dirname(filename), + getAssetFilename(fileHash, config) + postfix + ) ) }) if (minify && config.build.minify) { css = await minifyCSS(css, config) } - return css + // 压缩后再处理,小程序平台会补充 @import nvue 代码,esbuild 的压缩会把 `@import "./nvue.css";` 的空格移除,变成 `@import"./nvue.css";` 在支付宝小程序中不支持 + return chunkCssCode(filename, css) } const genCssCode = (fileName: string) => { @@ -288,8 +292,8 @@ export function cssPostPlugin( } for (const filename of cssChunks.keys()) { const cssCode = genCssCode(filename) - let source = await processChunkCSS(chunkCssCode(filename, cssCode), { - dirname: path.dirname(filename), + let source = await processChunkCSS(cssCode, { + filename: filename, inlined: false, minify: true, }) diff --git a/packages/vite-plugin-uni/package.json b/packages/vite-plugin-uni/package.json index b3f51a2f1..21c5cd50f 100644 --- a/packages/vite-plugin-uni/package.json +++ b/packages/vite-plugin-uni/package.json @@ -54,7 +54,7 @@ "vite": "^2.6.14" }, "uni-app": { - "compilerVersion": "3.2.10" + "compilerVersion": "3.2.14" }, "gitHead": "33e807d66e1fe47e2ee08ad9c59247e37b8884da" } -- GitLab