diff --git a/compiler/server/build_pipe_server.js b/compiler/server/build_pipe_server.js index fbc9c398c5870a3aa21b5dbf8fed18d47c0f385d..a7be44abb97835dbc29263fec1a4c1907b436c9b 100644 --- a/compiler/server/build_pipe_server.js +++ b/compiler/server/build_pipe_server.js @@ -25,7 +25,8 @@ let pluginSocket = ''; let supplement = { isAcceleratePreview: false, line: 0, - column: 0 + column: 0, + fileName: '' } const pluginCommandChannelMessageHandlers = { @@ -63,7 +64,8 @@ function handlePluginCompileComponent(jsonData) { supplement = { isAcceleratePreview: true, line: parseInt(JSON.parse(receivedMsg.data.offset).line), - column: parseInt(JSON.parse(receivedMsg.data.offset).column) + column: parseInt(JSON.parse(receivedMsg.data.offset).column), + fileName: receivedMsg.data.filePath } processComponentChild(sourceNode, previewStatements, log, supplement); supplement.isAcceleratePreview = false; diff --git a/compiler/src/process_component_build.ts b/compiler/src/process_component_build.ts index 6831aa253953b0967c320d99ea649032805cf538..2ebdf03d29654ced819c6fe0b0b79bc67243cc72 100644 --- a/compiler/src/process_component_build.ts +++ b/compiler/src/process_component_build.ts @@ -151,13 +151,15 @@ function validateRootNode(node: ts.MethodDeclaration, log: LogInfo[]): boolean { interface supplementType { isAcceleratePreview: boolean, line: number, - column: number + column: number, + fileName: string } let newsupplement: supplementType = { isAcceleratePreview: false, line: 0, - column: 0 + column: 0, + fileName: '' }; function validateEtsComponentNode(node: ts.CallExpression | ts.EtsComponentExpression) { @@ -173,8 +175,8 @@ function validateEtsComponentNode(node: ts.CallExpression | ts.EtsComponentExpre } } -export function processComponentChild(node: ts.Block | ts.SourceFile, newStatements: ts.Statement[], - log: LogInfo[], supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0}): void { +export function processComponentChild(node: ts.Block | ts.SourceFile, newStatements: ts.Statement[], log: LogInfo[], + supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0, fileName: ''}): void { if (supplement.isAcceleratePreview) { newsupplement = supplement; } @@ -290,7 +292,7 @@ function processInnerComponent(node: ts.ExpressionStatement, index: number, arr: const posOfNode: ts.LineAndCharacter = transformLog.sourceFile.getLineAndCharacterOfPosition(getRealNodePos(node)); const projectPath: string = projectConfig.projectPath; - const curFileName: string = transformLog.sourceFile.fileName.replace(/.ts$/, ''); + let curFileName: string = transformLog.sourceFile.fileName.replace(/.ts$/, ''); let line: number = 1; let col: number = 1; if (newsupplement.isAcceleratePreview) { @@ -298,11 +300,13 @@ function processInnerComponent(node: ts.ExpressionStatement, index: number, arr: col = newsupplement.column; } line = newsupplement.line; + curFileName = newsupplement.fileName; } newsupplement = { isAcceleratePreview: false, line: 0, - column: 0 + column: 0, + fileName: '' }; const debugInfo: string = `${path.relative(projectPath, curFileName).replace(/\\+/g, '/')}` +