Skip to content

Commit

Permalink
wip(uts): harmony 增加sourceMap
Browse files Browse the repository at this point in the history
  • Loading branch information
fxy060608 committed Jan 16, 2025
1 parent 4b0ab04 commit 8c54132
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,7 @@ export function uniUTSAppUniModulesPlugin(
return compiler.compileArkTS(pluginDir, {
isX: !!options.x,
isExtApi,
sourceMap: enableSourceMap(),
transform: {
uniExtApiProviderName: extApiProvider?.name,
uniExtApiProviderService: extApiProvider?.service,
Expand Down
34 changes: 34 additions & 0 deletions packages/uni-uts-v1/__tests__/sourceMap.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,40 @@ describe('uts:sourceMap', () => {
).toBe(sourceMapFile)
})

test('resolveUTSPluginSourceMapFile with uni_modules uts=>arkts', () => {
const sourceMapFile = resolveUTSPluginSourceMapFile(
'arkts',
resolve(inputDir, uniModulesPluginDir, 'utssdk/app-harmony/index.uts'),
inputDir,
outputDir
)
expect(
normalizePath(sourceMapFile).endsWith(
'uni_modules/test-uniplugin/utssdk/app-harmony/index.ets.map'
)
).toBe(true)
expect(
resolveUTSPluginSourceMapFile(
'arkts',
resolve(inputDir, uniModulesPluginDir, 'utssdk/index.uts'),
inputDir,
outputDir
)
).toBe(sourceMapFile)
expect(
resolveUTSPluginSourceMapFile(
'arkts',
resolve(
inputDir,
uniModulesPluginDir,
'utssdk/app-harmony/utils/utils.uts'
),
inputDir,
outputDir
)
).toBe(sourceMapFile)
})

test('resolveUTSPluginSourceMapFile with uni_modules uts=>swift', () => {
const sourceMapFile = resolveUTSPluginSourceMapFile(
'swift',
Expand Down
12 changes: 8 additions & 4 deletions packages/uni-uts-v1/src/arkts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
normalizeUTSResult,
resolveBundleInputFileName,
resolveBundleInputRoot,
resolveUTSSourceMapPath,
} from './utils'
import type { CompileResult } from '.'
import { sync } from 'fast-glob'
Expand All @@ -14,6 +15,7 @@ interface ArkTSCompilerOptions {
isX?: boolean
isExtApi?: boolean
isOhpmPackage?: boolean
sourceMap?: boolean
transform?: {
uniExtApiProviderName?: string
uniExtApiProviderService?: string
Expand Down Expand Up @@ -129,7 +131,7 @@ export async function compileArkTSExtApi(
rootDir: string,
pluginDir: string,
outputDir: string,
{ isExtApi, isX, isOhpmPackage = false, transform }: ArkTSCompilerOptions
{ isExtApi, isX, isOhpmPackage = false, sourceMap }: ArkTSCompilerOptions
): Promise<CompileResult | void> {
const filename = resolveAppHarmonyIndexFile(pluginDir)
if (!filename) {
Expand Down Expand Up @@ -170,7 +172,9 @@ export async function compileArkTSExtApi(
outFilename: 'utssdk/app-harmony/index.ets',
package: '',
imports: [],
sourceMap: false,
sourceMap: sourceMap
? path.resolve(resolveUTSSourceMapPath(), 'uni_modules', pluginId)
: false,
extname: '.ets',
logFilename: false,
isPlugin: true,
Expand Down Expand Up @@ -340,15 +344,15 @@ export default {

export async function compileArkTS(
pluginDir: string,
{ isExtApi, isX, transform }: ArkTSCompilerOptions
options: ArkTSCompilerOptions
): Promise<CompileResult | void> {
const inputDir = process.env.UNI_INPUT_DIR
const pluginId = path.basename(pluginDir)
return compileArkTSExtApi(
resolveBundleInputRoot('app-harmony', inputDir),
pluginDir,
resolveAppHarmonyUniModuleDir(pluginId),
{ isExtApi, isX, transform }
options
)
}

Expand Down
30 changes: 21 additions & 9 deletions packages/uni-uts-v1/src/sourceMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ import {
const EXTNAME = {
kotlin: '.kt',
swift: '.swift',
arkts: '.ets',
}

const PLATFORM_DIR = {
kotlin: 'app-android',
swift: 'app-ios',
arkts: 'app-harmony',
}

const uniModulesUTSPackagePrefix = 'uts.sdk.modules.'
Expand Down Expand Up @@ -166,7 +168,7 @@ export function resolveUTSSourceMapFile(
}

export function resolveUTSPluginSourceMapFile(
target: 'kotlin' | 'swift',
target: 'kotlin' | 'swift' | 'arkts',
filename: string,
inputDir: string,
outputDir: string
Expand All @@ -179,13 +181,23 @@ export function resolveUTSPluginSourceMapFile(
throw `plugin dir not found`
}
const is_uni_modules = basename(dirname(pluginDir)) === 'uni_modules'
const sourceMapFile = join(
join(outputDir, '../.sourcemap/app'),
relative(inputDir, pluginDir),
is_uni_modules ? 'utssdk' : '',
PLATFORM_DIR[target],
`index${EXTNAME[target]}.map`
)
const sourceMapFile =
target === 'arkts'
? join(
outputDir,
'../.sourcemap/app-harmony',
relative(inputDir, pluginDir),
is_uni_modules ? 'utssdk' : '',
PLATFORM_DIR[target],
`index${EXTNAME[target]}.map`
)
: join(
join(outputDir, '../.sourcemap/app'),
relative(inputDir, pluginDir),
is_uni_modules ? 'utssdk' : '',
PLATFORM_DIR[target],
`index${EXTNAME[target]}.map`
)
if (!existsSync(sourceMapFile)) {
throw `${sourceMapFile} not found`
}
Expand All @@ -199,7 +211,7 @@ function resolvePluginDir(
outputDir: string,
filename: string
) {
// 目标文件是编译后 kt 或 swift
// 目标文件是编译后 kt 或 swift 或 ets
if (filename.startsWith(outputDir)) {
const relativePath = relative(outputDir, filename)
const hasSrc = normalizePath(relativePath).includes('/src/')
Expand Down

0 comments on commit 8c54132

Please sign in to comment.