prevent filename collision in core metafiles

This commit is contained in:
Jeppe Reinhold 2024-09-17 12:15:40 +02:00
parent 26496252a7
commit 4662d2fa18
4 changed files with 15 additions and 11 deletions

View File

@ -7,8 +7,8 @@ const allMetafiles = import.meta.glob(
[
'../../bench/esbuild-metafiles/**/*.json',
// the following metafiles are too big to be loaded automatically in the iframe
'!**/core-cjs-0.json',
'!**/core-esm-2.json',
'!**/core-0.cjs.json',
'!**/core-2.esm.json',
],
{
// eagerly loading is not ideal because it imports all metafiles upfront,
@ -26,7 +26,7 @@ const METAFILE_DIR_PKG_NAME_MAP = {
docs: '@storybook/addon-docs',
'addon-test': '@storybook/experimental-addon-test',
} as const;
const TOO_BIG_METAFILES = ['@storybook/core core-cjs-0', '@storybook/core core-esm-2'];
const TOO_BIG_METAFILES = ['@storybook/core core-0.cjs', '@storybook/core core-2.esm'];
// allows the metafile path to be used in the URL hash
const safeMetafileArg = (path: string) =>
@ -117,4 +117,6 @@ export default {
},
} satisfies Meta;
export const Metafiles = {};
export const ESBuildAnalyzer = {
name: 'ESBuild Metafiles',
};

View File

@ -325,8 +325,9 @@ async function run() {
const { outputs } = out.metafile;
const keys = Object.keys(outputs);
const format = keys.every((key) => key.endsWith('.js')) ? 'esm' : 'cjs';
const basename =
keys.length === 1 ? dirname(keys[0]).replace('dist/', '') : `core-${format}-${index}`;
const moduleName =
keys.length === 1 ? dirname(keys[0]).replace('dist/', '') : `core-${index}`;
const basename = `${moduleName}.${format}`;
await writeFile(
join(metafilesDir, `${basename}.json`),

View File

@ -353,7 +353,7 @@ async function saveMetafiles({
await Promise.all(
formats.map(async (format) => {
const fromFilename = `metafile-${format}.json`;
const toBasename = `${name}-${format}`;
const toBasename = `${name}.${format}`;
const metafile = await fs.readJson(join(OUT_DIR, fromFilename));
await fs.move(join(OUT_DIR, fromFilename), join(METAFILES_DIR, `${toBasename}.json`), {

View File

@ -246,13 +246,14 @@ async function saveMetafiles({ formats }: { formats: Formats[] }) {
await fs.ensureDir(METAFILES_DIR);
await Promise.all(
formats.map(async (format) => {
const basename = `metafile-${format}`;
const metafile = await fs.readJson(join(OUT_DIR, `${basename}.json`));
await fs.move(join(OUT_DIR, `${basename}.json`), join(METAFILES_DIR, `${basename}.json`), {
const fromFilename = `metafile-${format}.json`;
const toBasename = `metafile.${format}`;
const metafile = await fs.readJson(join(OUT_DIR, fromFilename));
await fs.move(join(OUT_DIR, fromFilename), join(METAFILES_DIR, `${toBasename}.json`), {
overwrite: true,
});
await writeFile(
join(METAFILES_DIR, `${basename}.txt`),
join(METAFILES_DIR, `${toBasename}.txt`),
await esbuild.analyzeMetafile(metafile, { color: false, verbose: false })
);
})