Skip to content

Commit 3ccdd0c

Browse files
author
LessJS Bot
committed
fix(adapter-vite): auto-generate aliases in less:core config hook (Phase 1)
Phase 1's virtual:less-hono-entry also needs @lessjs/* resolution. Add auto-generated workspace aliases in the config hook so ALL three phases benefit from a single generation point. - config hook now async, auto-generates aliases when user has none - Stores aliases in ctx.userResolveAlias for Phase 2/3 - Phase 2/3 fallback generation preserved for defense in depth
1 parent 24a6e60 commit 3ccdd0c

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

packages/adapter-vite/src/index.ts

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,18 +283,37 @@ export function less(options: FrameworkOptions = {}, externalCtx?: LessBuildCont
283283
const corePlugin: Plugin = {
284284
name: 'less:core',
285285

286-
config(userConfig) {
286+
async config(userConfig) {
287287
if (userConfig.resolve?.alias && !ctx.userResolveAlias) {
288288
ctx.userResolveAlias = userConfig.resolve.alias as
289289
| Record<string, string>
290290
| import('vite').Alias[];
291291
}
292292

293-
// ADR 0018: buildCoreSubpathAliases() DELETED.
294-
// Local bare specifier resolution handled by @deno/vite-plugin (to be integrated).
295-
// Remote JSR resolution handled by createCoreResolvePlugin.
293+
// Auto-generate aliases from workspace packages when user
294+
// doesn't provide explicit aliases (zero-alias config).
295+
// This is needed because Vite/rolldown doesn't support
296+
// Deno workspace resolution during builds.
297+
let workspaceAliases = null;
298+
if (!userConfig.resolve?.alias) {
299+
try {
300+
const { findWorkspaceRoot, generateWorkspaceAliases } =
301+
await import('./workspace-alias.js');
302+
const wsRoot = await findWorkspaceRoot(process.cwd());
303+
if (wsRoot) {
304+
workspaceAliases = await generateWorkspaceAliases(wsRoot);
305+
log.info(
306+
`Auto-generated ${workspaceAliases.length} resolve alias(es) from workspace`,
307+
);
308+
ctx.userResolveAlias = workspaceAliases;
309+
}
310+
} catch (e) {
311+
log.warn(`Workspace alias generation skipped: ${e}`);
312+
}
313+
}
296314

297315
return {
316+
resolve: workspaceAliases ? { alias: workspaceAliases } : undefined,
298317
build: {
299318
rollupOptions: {
300319
input: [VIRTUAL_ENTRY_ID],

0 commit comments

Comments
 (0)