diff --git a/packages/uni-cli-shared/src/hbx/index.ts b/packages/uni-cli-shared/src/hbx/index.ts index 9e42465330bab0943d02d94a5ba59a8c6fc0aea0..fff06657a1812cf6e04b3a248476b3d7605e2343 100644 --- a/packages/uni-cli-shared/src/hbx/index.ts +++ b/packages/uni-cli-shared/src/hbx/index.ts @@ -1,8 +1,2 @@ -import path from 'path' - -process.env.UNI_HBUILDERX_PLUGINS = - process.env.UNI_HBUILDERX_PLUGINS || - path.resolve(__dirname, '../../../../../../') - export * from './env' export { initModuleAlias } from './alias' diff --git a/packages/uni-cli-shared/src/hbx/log.ts b/packages/uni-cli-shared/src/hbx/log.ts index daec2b5c1d361c0519de7b9d08e7c6acc36ddd6e..2defe352d14312da1d079642c832885f632e22a9 100644 --- a/packages/uni-cli-shared/src/hbx/log.ts +++ b/packages/uni-cli-shared/src/hbx/log.ts @@ -1,3 +1,5 @@ +import path from 'path' +import { normalizePath } from '../utils' import { Formatter } from '../logs/format' const SIGNAL_H5_LOCAL = ' > Local:' @@ -51,3 +53,41 @@ export const removeWarnFormatter: Formatter = { return '' }, } + +const fileRE = /file:\s(.*):(\d+):(\d+)/ + +export const FilenameFormatter: Formatter = { + test(msg) { + return fileRE.test(msg) + }, + format(msg) { + return msg.replace(fileRE, (_, filename, line, column) => { + return `file: ${filename.split('?')[0]}:${line}:${column}` + }) + }, +} + +export const HBuilderXFileFormatter: Formatter = { + test(msg) { + return fileRE.test(msg) + }, + format(msg) { + return ( + msg + // remove color + .replace(/\x1B[[(?);]{0,2}(;?\d)*./g, '') + .replace(fileRE, (_, filename, line, column) => { + return ( + 'at ' + + normalizePath( + path.relative(process.env.UNI_INPUT_DIR, filename.split('?')[0]) + ) + + ':' + + line + + ':' + + column + ) + }) + ) + }, +} diff --git a/packages/uni-cli-shared/src/logs/format.ts b/packages/uni-cli-shared/src/logs/format.ts index ca0aa08bd6d78d185c71663d5f5ed1d069a03d89..cf1304386138050ab211de5adc16aa78784534bf 100644 --- a/packages/uni-cli-shared/src/logs/format.ts +++ b/packages/uni-cli-shared/src/logs/format.ts @@ -1,11 +1,13 @@ import { once } from '@dcloudio/uni-shared' -import { isInHBuilderX } from '../hbx/env' +import { isInHBuilderX, runByHBuilderX } from '../hbx/env' import { moduleAliasFormatter } from '../hbx/alias' import { h5ServeFormatter, removeInfoFormatter, removeWarnFormatter, + FilenameFormatter, + HBuilderXFileFormatter, } from '../hbx/log' export interface Formatter { @@ -21,6 +23,11 @@ const initErrFormattersOnce = once(() => { if (isInHBuilderX()) { errFormatters.push(moduleAliasFormatter) } + if (runByHBuilderX()) { + errFormatters.push(HBuilderXFileFormatter) + } else { + errFormatters.push(FilenameFormatter) + } }) const initInfoFormattersOnce = once(() => { diff --git a/packages/uni-mp-compiler/src/transforms/transformIdentifier.ts b/packages/uni-mp-compiler/src/transforms/transformIdentifier.ts index b8ce6e439918537ea3c0c847a24996a95bcc8b3b..140e7e39f93db3043d91bb4b94cbcc536cc99d26 100644 --- a/packages/uni-mp-compiler/src/transforms/transformIdentifier.ts +++ b/packages/uni-mp-compiler/src/transforms/transformIdentifier.ts @@ -41,7 +41,6 @@ export const transformIdentifier: NodeTransform = (node, context) => { const { props } = node let hasClassBinding = false let hasStyleBinding = false - debugger for (let i = 0; i < props.length; i++) { const dir = props[i] if (dir.type === NodeTypes.DIRECTIVE) {