From 3e86e81412965dcb6985ad13c53ff347dac97548 Mon Sep 17 00:00:00 2001 From: Ryan Christian <33403762+rschristian@users.noreply.github.com> Date: Fri, 12 Aug 2022 21:10:29 -0500 Subject: [PATCH] refactor: Disable hashing ssr-build's css (#1733) * refactor: Disable hashing ssr-build's css * docs: Adding changeset * test: Fix unrelated change from altered template --- .changeset/popular-zebras-yell.md | 5 +++ packages/cli/lib/lib/webpack/run-webpack.js | 6 ++-- .../cli/lib/lib/webpack/transform-config.js | 13 ++----- .../lib/lib/webpack/webpack-base-config.js | 3 +- .../lib/lib/webpack/webpack-server-config.js | 1 - packages/cli/tests/images/build.js | 34 +++++++++---------- packages/create-cli/tests/images/create.js | 1 - 7 files changed, 30 insertions(+), 33 deletions(-) create mode 100644 .changeset/popular-zebras-yell.md diff --git a/.changeset/popular-zebras-yell.md b/.changeset/popular-zebras-yell.md new file mode 100644 index 000000000..a6d2df930 --- /dev/null +++ b/.changeset/popular-zebras-yell.md @@ -0,0 +1,5 @@ +--- +'preact-cli': patch +--- + +Disables hash in CSS file names for the SSR build diff --git a/packages/cli/lib/lib/webpack/run-webpack.js b/packages/cli/lib/lib/webpack/run-webpack.js index be7ed03e1..f142f2d25 100644 --- a/packages/cli/lib/lib/webpack/run-webpack.js +++ b/packages/cli/lib/lib/webpack/run-webpack.js @@ -52,12 +52,14 @@ async function devBuild(env) { } async function prodBuild(env) { + env = { ...env, isServer: false, dev: !env.production, ssr: false }; let config = await clientConfig(env); await transformConfig(env, config); if (env.prerender) { - let ssrConfig = serverConfig(env); - await transformConfig(env, ssrConfig, true); + const serverEnv = Object.assign({}, env, { isServer: true, ssr: true }); + let ssrConfig = serverConfig(serverEnv); + await transformConfig(serverEnv, ssrConfig); let serverCompiler = webpack(ssrConfig); await runCompiler(serverCompiler); } diff --git a/packages/cli/lib/lib/webpack/transform-config.js b/packages/cli/lib/lib/webpack/transform-config.js index 0ca4c3e33..07e915239 100644 --- a/packages/cli/lib/lib/webpack/transform-config.js +++ b/packages/cli/lib/lib/webpack/transform-config.js @@ -90,7 +90,7 @@ function parseConfig(config) { return transformers; } -module.exports = async function (env, webpackConfig, isServer = false) { +module.exports = async function (env, webpackConfig) { const { configFile, isDefault } = env.config !== 'preact.config.js' ? { configFile: env.config, isDefault: false } @@ -122,16 +122,7 @@ module.exports = async function (env, webpackConfig, isServer = false) { const helpers = new WebpackConfigHelpers(env.cwd); for (let [transformer, options] of transformers) { try { - await transformer( - webpackConfig, - Object.assign({}, env, { - isServer, - dev: !env.production, - ssr: isServer, - }), - helpers, - options - ); + await transformer(webpackConfig, env, helpers, options); } catch (err) { throw new Error((`Error at ${cliConfig}: \n` + err && err.stack) || err); } diff --git a/packages/cli/lib/lib/webpack/webpack-base-config.js b/packages/cli/lib/lib/webpack/webpack-base-config.js index 18a134c79..556a02cb6 100644 --- a/packages/cli/lib/lib/webpack/webpack-base-config.js +++ b/packages/cli/lib/lib/webpack/webpack-base-config.js @@ -290,7 +290,8 @@ module.exports = function createBaseConfig(env) { // Fix for https://github.com/webpack-contrib/mini-css-extract-plugin/issues/151 new RemoveEmptyScriptsPlugin(), new MiniCssExtractPlugin({ - filename: isProd ? '[name].[contenthash:5].css' : '[name].css', + filename: + isProd && !env.isServer ? '[name].[contenthash:5].css' : '[name].css', chunkFilename: isProd ? '[name].chunk.[contenthash:5].css' : '[name].chunk.css', diff --git a/packages/cli/lib/lib/webpack/webpack-server-config.js b/packages/cli/lib/lib/webpack/webpack-server-config.js index 8d23ddb12..cba7badb7 100644 --- a/packages/cli/lib/lib/webpack/webpack-server-config.js +++ b/packages/cli/lib/lib/webpack/webpack-server-config.js @@ -14,7 +14,6 @@ function serverConfig(env) { publicPath: '/', filename: 'ssr-bundle.js', path: resolve(env.dest, 'ssr-build'), - chunkFilename: '[name].chunk.[chunkhash:5].js', libraryTarget: 'commonjs2', }, externals: { diff --git a/packages/cli/tests/images/build.js b/packages/cli/tests/images/build.js index 403a144d9..df43dcd96 100644 --- a/packages/cli/tests/images/build.js +++ b/packages/cli/tests/images/build.js @@ -7,18 +7,18 @@ exports.default = { 'assets/icons/mstile-150x150.png': 9050, 'assets/favicon.ico': 15086, - 'ssr-build/ssr-bundle.c9123.css': 1281, - 'ssr-build/ssr-bundle.c9123.css.map': 2070, + 'ssr-build/ssr-bundle.css': 1281, + 'ssr-build/ssr-bundle.css.map': 2070, 'ssr-build/ssr-bundle.js': 9801, 'ssr-build/ssr-bundle.js.map': 30625, - 'ssr-build/asset-manifest.json': 82, + 'ssr-build/asset-manifest.json': 76, - 'bundle.3c823.js': 21323, - 'bundle.3c823.js.map': 85534, - 'bundle.3c823.legacy.js': 22514, - 'bundle.3c823.legacy.js.map': 106422, - 'bundle.a2557.css': 945, - 'bundle.a2557.css.map': 1758, + 'bundle.620ee.js': 21323, + 'bundle.620ee.js.map': 85534, + 'bundle.620ee.legacy.js': 22514, + 'bundle.620ee.legacy.js.map': 106422, + 'bundle.354c3.css': 945, + 'bundle.354c3.css.map': 1758, 'dom-polyfills.c88f4.legacy.js': 5252, 'dom-polyfills.c88f4.legacy.js.map': 18836, @@ -31,17 +31,17 @@ exports.default = { 'push-manifest.json': 450, 'asset-manifest.json': 943, - 'route-home.chunk.a00bd.js': 339, - 'route-home.chunk.a00bd.js.map': 1811, - 'route-home.chunk.a00bd.legacy.js': 394, - 'route-home.chunk.a00bd.legacy.js.map': 2102, + 'route-home.chunk.4ad71.js': 339, + 'route-home.chunk.4ad71.js.map': 1811, + 'route-home.chunk.4ad71.legacy.js': 394, + 'route-home.chunk.4ad71.legacy.js.map': 2102, 'route-home.chunk.6eaee.css': 112, 'route-home.chunk.6eaee.css.map': 224, - 'route-profile.chunk.05dd0.js': 2545, - 'route-profile.chunk.05dd0.js.map': 10268, - 'route-profile.chunk.05dd0.legacy.js': 2698, - 'route-profile.chunk.05dd0.legacy.js.map': 12894, + 'route-profile.chunk.6a61d.js': 2545, + 'route-profile.chunk.6a61d.js.map': 10268, + 'route-profile.chunk.6a61d.legacy.js': 2698, + 'route-profile.chunk.6a61d.legacy.js.map': 12894, 'route-profile.chunk.0af3e.css': 118, 'route-profile.chunk.0af3e.css.map': 231, }; diff --git a/packages/create-cli/tests/images/create.js b/packages/create-cli/tests/images/create.js index 05b0f1343..8500cec39 100644 --- a/packages/create-cli/tests/images/create.js +++ b/packages/create-cli/tests/images/create.js @@ -11,7 +11,6 @@ exports.default = [ 'src/assets/icons/favicon-16x16.png', 'src/assets/icons/favicon-32x32.png', 'src/assets/icons/mstile-150x150.png', - 'src/components/app.js', 'src/components/header/index.js', 'src/components/header/style.module.css', 'src/index.js',