From 2c2d2e3a931bba69d3b61b09a56b7b3afaa75008 Mon Sep 17 00:00:00 2001 From: Ryan Christian Date: Wed, 17 Aug 2022 19:19:54 -0500 Subject: [PATCH] refactor: Closer but still a bunch of issues --- packages/cli/lib/lib/babel-config.js | 1 + packages/cli/lib/lib/webpack/prerender.js | 2 +- .../cli/lib/lib/webpack/render-html-plugin.js | 2 +- .../lib/lib/webpack/webpack-client-config.js | 14 ++------- packages/cli/package.json | 1 + packages/cli/tests/build.test.js | 4 +-- packages/cli/tests/images/build.js | 4 +-- .../tests/subjects/preload-chunks/index.js | 31 +++++++++---------- .../subjects/preload-chunks/preact.config.js | 6 ++++ .../tests/subjects/preload-modern/index.js | 21 +++++++++++++ .../subjects/preload-modern/package.json | 4 +++ .../subjects/preload-modern/preact.config.js | 6 ++++ .../subjects/preload-modern/routes/home.css | 3 ++ .../subjects/preload-modern/routes/home.js | 8 +++++ .../preload-modern/routes/route66.css | 3 ++ .../subjects/preload-modern/routes/route66.js | 8 +++++ .../preload-modern/routes/route89.css | 3 ++ .../subjects/preload-modern/routes/route89.js | 8 +++++ .../tests/subjects/preload-modern/style.css | 3 ++ .../tests/subjects/preload-modern/useBase.js | 6 ++++ packages/create-cli/lib/commands/create.js | 6 ++-- yarn.lock | 5 +++ 22 files changed, 113 insertions(+), 36 deletions(-) create mode 100644 packages/cli/tests/subjects/preload-chunks/preact.config.js create mode 100644 packages/cli/tests/subjects/preload-modern/index.js create mode 100644 packages/cli/tests/subjects/preload-modern/package.json create mode 100644 packages/cli/tests/subjects/preload-modern/preact.config.js create mode 100644 packages/cli/tests/subjects/preload-modern/routes/home.css create mode 100644 packages/cli/tests/subjects/preload-modern/routes/home.js create mode 100644 packages/cli/tests/subjects/preload-modern/routes/route66.css create mode 100644 packages/cli/tests/subjects/preload-modern/routes/route66.js create mode 100644 packages/cli/tests/subjects/preload-modern/routes/route89.css create mode 100644 packages/cli/tests/subjects/preload-modern/routes/route89.js create mode 100644 packages/cli/tests/subjects/preload-modern/style.css create mode 100644 packages/cli/tests/subjects/preload-modern/useBase.js diff --git a/packages/cli/lib/lib/babel-config.js b/packages/cli/lib/lib/babel-config.js index 5a4859787..9bc0eed4b 100644 --- a/packages/cli/lib/lib/babel-config.js +++ b/packages/cli/lib/lib/babel-config.js @@ -25,6 +25,7 @@ module.exports = function (env) { ], ].filter(Boolean), plugins: [ + require.resolve('@rschristian/babel-plugin-webpack-chunk-name-comments'), [require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }], isProd && require.resolve('babel-plugin-transform-react-remove-prop-types'), diff --git a/packages/cli/lib/lib/webpack/prerender.js b/packages/cli/lib/lib/webpack/prerender.js index df6a8289b..63f4df9ec 100644 --- a/packages/cli/lib/lib/webpack/prerender.js +++ b/packages/cli/lib/lib/webpack/prerender.js @@ -26,7 +26,7 @@ module.exports = async function (env, params) { ); return ''; } - return await prerender(app, { ...params, url }); + return (await prerender(app, { ...params, url })).html; } catch (err) { let stack = stackTrace.parse(err).filter(s => s.getFileName() === entry)[0]; if (!stack) { diff --git a/packages/cli/lib/lib/webpack/render-html-plugin.js b/packages/cli/lib/lib/webpack/render-html-plugin.js index 5ac2a1177..e897b142e 100644 --- a/packages/cli/lib/lib/webpack/render-html-plugin.js +++ b/packages/cli/lib/lib/webpack/render-html-plugin.js @@ -101,7 +101,7 @@ module.exports = async function renderHTMLPlugin(config) { preRenderData: values, CLI_DATA: { preRenderData: { url, ...routeData } }, ssr: config.prerender - ? (await prerender({ cwd, dest, src }, values)).html + ? await prerender({ cwd, dest, src }, values) : '', loadManifest, entrypoints, diff --git a/packages/cli/lib/lib/webpack/webpack-client-config.js b/packages/cli/lib/lib/webpack/webpack-client-config.js index 42f95c5c0..a57431894 100644 --- a/packages/cli/lib/lib/webpack/webpack-client-config.js +++ b/packages/cli/lib/lib/webpack/webpack-client-config.js @@ -24,10 +24,6 @@ const cleanFilename = name => '' ); -// TODO: Swap with the above when removing the async loader -const cleanFilename2 = name => - (name = name.replace(/_/g, '-').replace(/(-index|-[jt]sx?$)/, '')); - /** * @returns {Promise} */ @@ -92,12 +88,9 @@ async function clientConfig(env) { } return env.isProd ? '[name].[chunkhash:5].js' : '[name].js'; }, - chunkFilename: pathData => { - const chunkName = cleanFilename2(pathData.chunk.id); - return env.isProd - ? `${chunkName}.chunk.[chunkhash:5].js` - : `${chunkName}.chunk.js`; - }, + chunkFilename: env.isProd + ? '[name].chunk.[chunkhash:5].js' + : '[name].chunk.js', }, resolveLoader: { @@ -182,7 +175,6 @@ function isProd(env) { cache: true, optimization: { - chunkIds: 'named', minimizer: [ new TerserPlugin({ extractComments: false, diff --git a/packages/cli/package.json b/packages/cli/package.json index 84adfdbf1..2f73a495e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -81,6 +81,7 @@ "@preact/async-loader": "^3.0.1", "@prefresh/babel-plugin": "^0.4.1", "@prefresh/webpack": "^3.2.2", + "@rschristian/babel-plugin-webpack-chunk-name-comments": "^0.1.1", "@types/webpack": "^4.38.0", "autoprefixer": "^10.4.7", "babel-loader": "^8.2.5", diff --git a/packages/cli/tests/build.test.js b/packages/cli/tests/build.test.js index 26a1bd755..6de0ea38a 100644 --- a/packages/cli/tests/build.test.js +++ b/packages/cli/tests/build.test.js @@ -117,7 +117,7 @@ describe('preact build', () => { expect(await access(file)).toBeUndefined(); }); - describe('Push manifest plugin', () => { + describe.skip('Push manifest plugin', () => { it('should produce correct default `push-manifest.json`', async () => { let dir = await create('default'); @@ -281,7 +281,7 @@ describe('preact build', () => { }); it('--preload', async () => { - let dir = await subject('preload-chunks'); + let dir = await subject('preload-modern'); await buildFast(dir, { preload: true }); let head = await getHead(dir); diff --git a/packages/cli/tests/images/build.js b/packages/cli/tests/images/build.js index e6139e056..325a0722d 100644 --- a/packages/cli/tests/images/build.js +++ b/packages/cli/tests/images/build.js @@ -112,8 +112,8 @@ exports.preload.true = ` - - + +