diff --git a/.changeset/thick-trees-worry.md b/.changeset/thick-trees-worry.md new file mode 100644 index 0000000000..7f5428f739 --- /dev/null +++ b/.changeset/thick-trees-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue where `.css` style injection would fail for published packages. diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 32ee386ce4..e419503649 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -115,10 +115,16 @@ export async function makeRollupConfigs( const output = new Array(); const mainFields = ['module', 'main']; + // Avoid using node_modules as a directory name, since it's trimmed from published packages. + // This can happen when inlining dependencies such as style-inject added for css injection. + const rewriteNodeModules = (name: string) => + name.replaceAll('node_modules', 'node_modules_dist'); + if (options.outputs.has(Output.cjs)) { output.push({ dir: distDir, - entryFileNames: `[name].cjs.js`, + entryFileNames: chunkInfo => + `${rewriteNodeModules(chunkInfo.name)}.cjs.js`, chunkFileNames: `cjs/[name]-[hash].cjs.js`, format: 'commonjs', interop: 'compat', @@ -131,7 +137,8 @@ export async function makeRollupConfigs( if (options.outputs.has(Output.esm)) { output.push({ dir: distDir, - entryFileNames: `[name].esm.js`, + entryFileNames: chunkInfo => + `${rewriteNodeModules(chunkInfo.name)}.esm.js`, chunkFileNames: `esm/[name]-[hash].esm.js`, format: 'module', sourcemap: true,