From 396aec88a5a5c346b43e01e8dbfda3d3dcb62651 Mon Sep 17 00:00:00 2001 From: Ryan Christian <33403762+rschristian@users.noreply.github.com> Date: Thu, 17 Nov 2022 18:11:24 -0600 Subject: [PATCH] fix: `push-manifest.json` CSS asset type (#1736) * fix: CSS in push-manifest was labeled as a script * docs: Adding changeset * refactor: Skips over already set file attrs when generating push-manifest --- .changeset/shy-poets-sneeze.md | 5 +++++ packages/cli/lib/lib/webpack/create-load-manifest.js | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/shy-poets-sneeze.md diff --git a/.changeset/shy-poets-sneeze.md b/.changeset/shy-poets-sneeze.md new file mode 100644 index 000000000..13858d62a --- /dev/null +++ b/.changeset/shy-poets-sneeze.md @@ -0,0 +1,5 @@ +--- +'preact-cli': patch +--- + +Fix for CSS assets sometimes being mistakenly labeled as 'scripts' in the push-manifest. diff --git a/packages/cli/lib/lib/webpack/create-load-manifest.js b/packages/cli/lib/lib/webpack/create-load-manifest.js index 948ee24d8..0772f1b9a 100644 --- a/packages/cli/lib/lib/webpack/create-load-manifest.js +++ b/packages/cli/lib/lib/webpack/create-load-manifest.js @@ -41,7 +41,7 @@ module.exports = (assets, namedChunkGroups, isProd) => { const routeJs = assets[`${route}.js`]; routeManifest[routeJs] = { type: 'script', weight: 0.9 }; - if (routeCss) routeManifest[routeCss] = { type: 'script', weight: 0.9 }; + if (routeCss) routeManifest[routeCss] = { type: 'style', weight: 0.9 }; const path = route.replace(/^route-/, '/').replace(/^\/home/, '/'); @@ -52,6 +52,7 @@ module.exports = (assets, namedChunkGroups, isProd) => { asyncFiles.chunks.forEach(asset => { asset.files = asset.files || []; asset.files.forEach(file => { + if (routeManifest[file]) return; if (/\.css$/.test(file)) { routeManifest[file] = { type: 'style', weight: 0.9 }; } else if (/\.js$/.test(file)) {