Skip to content

Commit

Permalink
feat: support aliases for stub mode (#283)
Browse files Browse the repository at this point in the history
  • Loading branch information
pi0 authored Jul 18, 2023
1 parent 0adde21 commit a2e7fd2
Showing 1 changed file with 35 additions and 13 deletions.
48 changes: 35 additions & 13 deletions src/builder/rollup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import dts from "rollup-plugin-dts";
import replace from "@rollup/plugin-replace";
import { resolve, dirname, normalize, extname, isAbsolute } from "pathe";
import { resolvePath, resolveModuleExportNames } from "mlly";
import type { JITIOptions } from "jiti";
import { arrayIncludes, getpkg, tryResolve, warn } from "../utils";
import type { BuildContext } from "../types";
import { esbuild } from "./plugins/esbuild";
Expand All @@ -38,7 +37,13 @@ export async function rollupBuild(ctx: BuildContext) {
if (ctx.options.stub) {
const jitiPath = await resolvePath("jiti", { url: import.meta.url });
const serializedJitiOptions = JSON.stringify(
ctx.options.stubOptions.jiti,
{
...ctx.options.stubOptions.jiti,
alias: {
...resolveAliases(ctx),
...ctx.options.stubOptions.jiti.alias,
},
},
null,
2,
);
Expand Down Expand Up @@ -309,17 +314,7 @@ export function getRollupOptions(ctx: BuildContext): RollupOptions {
ctx.options.rollup.alias &&
alias({
...ctx.options.rollup.alias,
entries: {
[ctx.pkg.name!]: ctx.options.rootDir,
...ctx.options.alias,
...(Array.isArray(ctx.options.rollup.alias.entries)
? Object.fromEntries(
ctx.options.rollup.alias.entries.map((entry) => {
return [entry.find, entry.replacement];
}),
)
: ctx.options.rollup.alias.entries),
},
entries: resolveAliases(ctx),
}),

ctx.options.rollup.resolve &&
Expand Down Expand Up @@ -359,3 +354,30 @@ export function getRollupOptions(ctx: BuildContext): RollupOptions {
].filter(Boolean),
}) as RollupOptions;
}

function resolveAliases(ctx: BuildContext) {
const aliases: Record<string, string> = {
[ctx.pkg.name!]: ctx.options.rootDir,
...ctx.options.alias,
};

if (ctx.options.rollup.alias) {
if (Array.isArray(ctx.options.rollup.alias.entries)) {
Object.assign(
aliases,
Object.fromEntries(
ctx.options.rollup.alias.entries.map((entry) => {
return [entry.find, entry.replacement];
}),
),
);
} else {
Object.assign(
aliases,
ctx.options.rollup.alias.entries || ctx.options.rollup.alias,
);
}
}

return aliases;
}

0 comments on commit a2e7fd2

Please sign in to comment.