From 09ea0930a381d84d81441b9078ea831bbf2dc3b9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Nov 2024 12:23:46 +0100 Subject: [PATCH 1/2] cli: fix for dist/node_modules being trimmed from published packages Signed-off-by: Patrik Oldsberg --- .changeset/thick-trees-worry.md | 5 +++++ packages/cli/package.json | 1 + packages/cli/src/lib/builder/config.ts | 2 ++ yarn.lock | 13 +++++++++++++ 4 files changed, 21 insertions(+) create mode 100644 .changeset/thick-trees-worry.md 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/package.json b/packages/cli/package.json index d886bdde0b..6423fd79f4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -140,6 +140,7 @@ "rollup-plugin-dts": "^6.1.0", "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-postcss": "^4.0.0", + "rollup-plugin-rename-node-modules": "^1.3.1", "rollup-pluginutils": "^2.8.2", "semver": "^7.5.3", "style-loader": "^3.3.1", diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 32ee386ce4..842d133380 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -25,6 +25,7 @@ import svgr from '@svgr/rollup'; import dts from 'rollup-plugin-dts'; import json from '@rollup/plugin-json'; import yaml from '@rollup/plugin-yaml'; +import renameNodeModules from 'rollup-plugin-rename-node-modules'; import { RollupOptions, OutputOptions, @@ -181,6 +182,7 @@ export async function makeRollupConfigs( include: /\.icon\.svg$/, template: svgrTemplate, }), + renameNodeModules('node_modules_dist'), esbuild({ target: 'ES2022', minify: options.minify, diff --git a/yarn.lock b/yarn.lock index 6a115513dd..d73f8833fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4054,6 +4054,7 @@ __metadata: rollup-plugin-dts: ^6.1.0 rollup-plugin-esbuild: ^6.1.1 rollup-plugin-postcss: ^4.0.0 + rollup-plugin-rename-node-modules: ^1.3.1 rollup-pluginutils: ^2.8.2 semver: ^7.5.3 style-loader: ^3.3.1 @@ -40811,6 +40812,18 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-rename-node-modules@npm:^1.3.1": + version: 1.3.1 + resolution: "rollup-plugin-rename-node-modules@npm:1.3.1" + dependencies: + estree-walker: ^2.0.1 + magic-string: ^0.25.7 + peerDependencies: + rollup: ^2.28.2 + checksum: ef64fca4ae6e3b5f45d438315a34c368b259b7024f3f6a2f73c6fd819fdf98d7623327abdd0d641694ce030641312d4e91ce4cb171e195fc9f580a3a02f303ff + languageName: node + linkType: hard + "rollup-plugin-smart-asset@npm:^2.1.2": version: 2.1.2 resolution: "rollup-plugin-smart-asset@npm:2.1.2" From 30f0a49e13e1118d0a68a20e4d6fbcbed303d595 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Nov 2024 12:31:59 +0100 Subject: [PATCH 2/2] cli: avoid external dep for node_modules rewrite Signed-off-by: Patrik Oldsberg --- packages/cli/package.json | 1 - packages/cli/src/lib/builder/config.ts | 13 +++++++++---- yarn.lock | 13 ------------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 6423fd79f4..d886bdde0b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -140,7 +140,6 @@ "rollup-plugin-dts": "^6.1.0", "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-postcss": "^4.0.0", - "rollup-plugin-rename-node-modules": "^1.3.1", "rollup-pluginutils": "^2.8.2", "semver": "^7.5.3", "style-loader": "^3.3.1", diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 842d133380..e419503649 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -25,7 +25,6 @@ import svgr from '@svgr/rollup'; import dts from 'rollup-plugin-dts'; import json from '@rollup/plugin-json'; import yaml from '@rollup/plugin-yaml'; -import renameNodeModules from 'rollup-plugin-rename-node-modules'; import { RollupOptions, OutputOptions, @@ -116,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', @@ -132,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, @@ -182,7 +188,6 @@ export async function makeRollupConfigs( include: /\.icon\.svg$/, template: svgrTemplate, }), - renameNodeModules('node_modules_dist'), esbuild({ target: 'ES2022', minify: options.minify, diff --git a/yarn.lock b/yarn.lock index d73f8833fd..6a115513dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4054,7 +4054,6 @@ __metadata: rollup-plugin-dts: ^6.1.0 rollup-plugin-esbuild: ^6.1.1 rollup-plugin-postcss: ^4.0.0 - rollup-plugin-rename-node-modules: ^1.3.1 rollup-pluginutils: ^2.8.2 semver: ^7.5.3 style-loader: ^3.3.1 @@ -40812,18 +40811,6 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-rename-node-modules@npm:^1.3.1": - version: 1.3.1 - resolution: "rollup-plugin-rename-node-modules@npm:1.3.1" - dependencies: - estree-walker: ^2.0.1 - magic-string: ^0.25.7 - peerDependencies: - rollup: ^2.28.2 - checksum: ef64fca4ae6e3b5f45d438315a34c368b259b7024f3f6a2f73c6fd819fdf98d7623327abdd0d641694ce030641312d4e91ce4cb171e195fc9f580a3a02f303ff - languageName: node - linkType: hard - "rollup-plugin-smart-asset@npm:^2.1.2": version: 2.1.2 resolution: "rollup-plugin-smart-asset@npm:2.1.2"