fix: support Windows launcher import paths

This commit is contained in:
Vasanthdev2004
2026-04-01 12:43:14 +05:30
parent 2d7aa9c841
commit 4ce7dcf91e
3 changed files with 22 additions and 1 deletions

7
bin/import-specifier.mjs Normal file
View File

@@ -0,0 +1,7 @@
import { join } from 'path'
import { pathToFileURL } from 'url'
export function getDistImportSpecifier(baseDir) {
const distPath = join(baseDir, '..', 'dist', 'cli.mjs')
return pathToFileURL(distPath).href
}

View File

@@ -0,0 +1,13 @@
import assert from 'node:assert/strict'
import test from 'node:test'
import { getDistImportSpecifier } from './import-specifier.mjs'
test('builds a file URL import specifier for dist/cli.mjs', () => {
const specifier = getDistImportSpecifier('C:\\repo\\bin')
assert.equal(
specifier,
'file:///C:/repo/dist/cli.mjs',
)
})

View File

@@ -10,12 +10,13 @@
import { existsSync } from 'fs' import { existsSync } from 'fs'
import { join, dirname } from 'path' import { join, dirname } from 'path'
import { fileURLToPath } from 'url' import { fileURLToPath } from 'url'
import { getDistImportSpecifier } from './import-specifier.mjs'
const __dirname = dirname(fileURLToPath(import.meta.url)) const __dirname = dirname(fileURLToPath(import.meta.url))
const distPath = join(__dirname, '..', 'dist', 'cli.mjs') const distPath = join(__dirname, '..', 'dist', 'cli.mjs')
if (existsSync(distPath)) { if (existsSync(distPath)) {
await import(distPath) await import(getDistImportSpecifier(__dirname))
} else { } else {
console.error(` console.error(`
openclaude: dist/cli.mjs not found. openclaude: dist/cli.mjs not found.