Fix storybook build

This commit is contained in:
Joseph Garrone
2024-07-27 00:44:32 +02:00
parent 3e80aaf242
commit 89d9208f44
5 changed files with 63 additions and 52 deletions

View File

@ -1,16 +1,13 @@
import * as child_process from "child_process"; import * as child_process from "child_process";
import { join } from "path"; import { copyKeycloakResourcesToStorybookStaticDir } from "./copyKeycloakResourcesToStorybookStaticDir";
run("yarn build"); (async () => {
run("yarn build");
run(`node ${join("dist", "bin", "main.js")} copy-keycloak-resources-to-public`, { await copyKeycloakResourcesToStorybookStaticDir();
env: {
...process.env,
PUBLIC_DIR_PATH: join(".storybook", "static")
}
});
run("npx build-storybook"); run("npx build-storybook");
})();
function run(command: string, options?: { env?: NodeJS.ProcessEnv }) { function run(command: string, options?: { env?: NodeJS.ProcessEnv }) {
console.log(`$ ${command}`); console.log(`$ ${command}`);

View File

@ -0,0 +1,18 @@
import { join as pathJoin } from "path";
import { copyKeycloakResourcesToPublic } from "../src/bin/shared/copyKeycloakResourcesToPublic";
import { getProxyFetchOptions } from "../src/bin/tools/fetchProxyOptions";
import { LOGIN_THEME_RESOURCES_FROMkEYCLOAK_VERSION_DEFAULT } from "../src/bin/shared/constants";
export async function copyKeycloakResourcesToStorybookStaticDir() {
await copyKeycloakResourcesToPublic({
buildContext: {
cacheDirPath: pathJoin(__dirname, "..", "node_modules", ".cache", "scripts"),
fetchOptions: getProxyFetchOptions({
npmConfigGetCwd: pathJoin(__dirname, "..")
}),
loginThemeResourcesFromKeycloakVersion:
LOGIN_THEME_RESOURCES_FROMkEYCLOAK_VERSION_DEFAULT,
publicDirPath: pathJoin(__dirname, "..", ".storybook", "static")
}
});
}

View File

@ -1,30 +1,26 @@
import * as child_process from "child_process"; import * as child_process from "child_process";
import * as fs from "fs";
import { join } from "path";
import { startRebuildOnSrcChange } from "./startRebuildOnSrcChange"; import { startRebuildOnSrcChange } from "./startRebuildOnSrcChange";
import { copyKeycloakResourcesToStorybookStaticDir } from "./copyKeycloakResourcesToStorybookStaticDir";
run("yarn build"); (async () => {
run("yarn build");
run(`node ${join("dist", "bin", "main.js")} copy-keycloak-resources-to-public`, { await copyKeycloakResourcesToStorybookStaticDir();
env: {
...process.env, {
PUBLIC_DIR_PATH: join(".storybook", "static") const child = child_process.spawn("npx", ["start-storybook", "-p", "6006"], {
shell: true
});
child.stdout.on("data", data => process.stdout.write(data));
child.stderr.on("data", data => process.stderr.write(data));
child.on("exit", process.exit.bind(process));
} }
});
{ startRebuildOnSrcChange();
const child = child_process.spawn("npx", ["start-storybook", "-p", "6006"], { })();
shell: true
});
child.stdout.on("data", data => process.stdout.write(data));
child.stderr.on("data", data => process.stderr.write(data));
child.on("exit", process.exit.bind(process));
}
startRebuildOnSrcChange();
function run(command: string, options?: { env?: NodeJS.ProcessEnv }) { function run(command: string, options?: { env?: NodeJS.ProcessEnv }) {
console.log(`$ ${command}`); console.log(`$ ${command}`);

View File

@ -14,7 +14,8 @@ import { assert, type Equals } from "tsafe/assert";
import * as child_process from "child_process"; import * as child_process from "child_process";
import { import {
VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES, VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES,
BUILD_FOR_KEYCLOAK_MAJOR_VERSION_ENV_NAME BUILD_FOR_KEYCLOAK_MAJOR_VERSION_ENV_NAME,
LOGIN_THEME_RESOURCES_FROMkEYCLOAK_VERSION_DEFAULT
} from "./constants"; } from "./constants";
import type { KeycloakVersionRange } from "./KeycloakVersionRange"; import type { KeycloakVersionRange } from "./KeycloakVersionRange";
import { exclude } from "tsafe"; import { exclude } from "tsafe";
@ -506,7 +507,8 @@ export function getBuildContext(params: {
buildOptions.artifactId ?? buildOptions.artifactId ??
`${themeNames[0]}-keycloak-theme`, `${themeNames[0]}-keycloak-theme`,
loginThemeResourcesFromKeycloakVersion: loginThemeResourcesFromKeycloakVersion:
buildOptions.loginThemeResourcesFromKeycloakVersion ?? "24.0.4", buildOptions.loginThemeResourcesFromKeycloakVersion ??
LOGIN_THEME_RESOURCES_FROMkEYCLOAK_VERSION_DEFAULT,
projectDirPath, projectDirPath,
projectBuildDirPath, projectBuildDirPath,
keycloakifyBuildDirPath: (() => { keycloakifyBuildDirPath: (() => {
@ -554,27 +556,23 @@ export function getBuildContext(params: {
return pathJoin(projectDirPath, resolvedViteConfig.publicDir); return pathJoin(projectDirPath, resolvedViteConfig.publicDir);
})(), })(),
cacheDirPath: (() => { cacheDirPath: pathJoin(
const cacheDirPath = pathJoin( (() => {
(() => { if (process.env.XDG_CACHE_HOME !== undefined) {
if (process.env.XDG_CACHE_HOME !== undefined) { return getAbsoluteAndInOsFormatPath({
return getAbsoluteAndInOsFormatPath({ pathIsh: process.env.XDG_CACHE_HOME,
pathIsh: process.env.XDG_CACHE_HOME, cwd: process.cwd()
cwd: process.cwd() });
}); }
}
return pathJoin( return pathJoin(
pathDirname(packageJsonFilePath), pathDirname(packageJsonFilePath),
"node_modules", "node_modules",
".cache" ".cache"
); );
})(), })(),
"keycloakify" "keycloakify"
); ),
return cacheDirPath;
})(),
urlPathname: (() => { urlPathname: (() => {
webpack: { webpack: {
if (bundler !== "webpack") { if (bundler !== "webpack") {

View File

@ -69,3 +69,5 @@ export type AccountThemePageId = (typeof ACCOUNT_THEME_PAGE_IDS)[number];
export const CONTAINER_NAME = "keycloak-keycloakify"; export const CONTAINER_NAME = "keycloak-keycloakify";
export const FALLBACK_LANGUAGE_TAG = "en"; export const FALLBACK_LANGUAGE_TAG = "en";
export const LOGIN_THEME_RESOURCES_FROMkEYCLOAK_VERSION_DEFAULT = "24.0.4";