From a5a24efa60f7f39bbd0f47db7b8b55caa5723c7e Mon Sep 17 00:00:00 2001 From: "shuilan.cj" Date: Thu, 9 Feb 2023 15:12:15 +0800 Subject: [PATCH 1/2] fix: document output name --- packages/plugin-rax-web/CHANGELOG.md | 4 ++++ packages/plugin-rax-web/package.json | 2 +- packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts | 10 ++++++---- packages/plugin-rax-web/src/setLocalBuilder.ts | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/plugin-rax-web/CHANGELOG.md b/packages/plugin-rax-web/CHANGELOG.md index d2ed521e3..15c8dfead 100644 --- a/packages/plugin-rax-web/CHANGELOG.md +++ b/packages/plugin-rax-web/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v2.0.9 + +- Fix: ssr overwrite document output + ## v2.0.8 - Fix: build-scripts version diff --git a/packages/plugin-rax-web/package.json b/packages/plugin-rax-web/package.json index 16de7fcff..20fde8743 100644 --- a/packages/plugin-rax-web/package.json +++ b/packages/plugin-rax-web/package.json @@ -1,6 +1,6 @@ { "name": "build-plugin-rax-web", - "version": "2.0.8", + "version": "2.0.9", "description": "rax web app plugin", "main": "lib/index.js", "scripts": { diff --git a/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts b/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts index f57c4e7ac..80a02ef47 100644 --- a/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts +++ b/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts @@ -70,10 +70,12 @@ export default class DocumentPlugin { }); let html = ''; let customDocument = false; + const documentEntry = `document_${entryName}.js`; + // PHA will consume document field - if (documentPath && localBuildAssets[`${entryName}.js`]) { + if (documentPath && localBuildAssets[documentEntry]) { customDocument = true; - const bundleContent = localBuildAssets[`${entryName}.js`].source(); + const bundleContent = localBuildAssets[documentEntry].source(); const mod = exec(bundleContent, entryPath); try { @@ -102,9 +104,9 @@ export default class DocumentPlugin { } else { let initialHTML; - if (localBuildAssets[`${entryName}.js`]) { + if (localBuildAssets[documentEntry]) { customDocument = true; - const bundleContent = localBuildAssets[`${entryName}.js`].source(); + const bundleContent = localBuildAssets[documentEntry].source(); const mod = exec(bundleContent, entryPath); try { initialHTML = mod.renderPage(); diff --git a/packages/plugin-rax-web/src/setLocalBuilder.ts b/packages/plugin-rax-web/src/setLocalBuilder.ts index 2636b847d..6a558fee7 100644 --- a/packages/plugin-rax-web/src/setLocalBuilder.ts +++ b/packages/plugin-rax-web/src/setLocalBuilder.ts @@ -118,7 +118,7 @@ export default (api, documentPath?: string | undefined) => { } } - config.entry(entryName).add( + config.entry(`document_${entryName}`).add( `${require.resolve('./Loaders/render-loader')}?${qs.stringify({ documentPath, entryPath, From 8a074ccf449d12d7eb33fff60392f32948de8f61 Mon Sep 17 00:00:00 2001 From: "shuilan.cj" Date: Thu, 9 Feb 2023 15:24:17 +0800 Subject: [PATCH 2/2] fix: distinguish with ssr entry name --- packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts | 4 ++-- packages/plugin-rax-web/src/setLocalBuilder.ts | 4 +++- packages/plugin-rax-web/src/utils/document.ts | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts b/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts index 80a02ef47..074d000ee 100644 --- a/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts +++ b/packages/plugin-rax-web/src/Plugins/DocumentPlugin.ts @@ -7,7 +7,7 @@ import { registerListenTask, getAssets, getEnableStatus, updateEnableStatus } fr import * as webpackSources from 'webpack-sources'; import { processAssets, emitAsset } from '@builder/compat-webpack4'; import { getInjectedHTML, getBuiltInHtmlTpl, insertCommonElements, genComboedScript } from '../utils/htmlStructure'; -import { setDocument } from '../utils/document'; +import { setDocument, getDocumentEntryName } from '../utils/document'; import { updateHTMLByEntryName } from '../utils/htmlCache'; const PLUGIN_NAME = 'DocumentPlugin'; @@ -70,7 +70,7 @@ export default class DocumentPlugin { }); let html = ''; let customDocument = false; - const documentEntry = `document_${entryName}.js`; + const documentEntry = getDocumentEntryName(entryName); // PHA will consume document field if (documentPath && localBuildAssets[documentEntry]) { diff --git a/packages/plugin-rax-web/src/setLocalBuilder.ts b/packages/plugin-rax-web/src/setLocalBuilder.ts index 6a558fee7..eeeb3d961 100644 --- a/packages/plugin-rax-web/src/setLocalBuilder.ts +++ b/packages/plugin-rax-web/src/setLocalBuilder.ts @@ -5,6 +5,7 @@ import * as chokidar from 'chokidar'; import LocalBuilderPlugin from './Plugins/LocalBuilderPlugin'; import { GET_RAX_APP_WEBPACK_CONFIG } from './constants'; import { updateEnableStatus } from './utils/localBuildCache'; +import { getDocumentEntryName } from './utils/document'; export default (api, documentPath?: string | undefined) => { const { onGetWebpackConfig, getValue, context, registerTask, registerUserConfig, modifyUserConfig } = api; @@ -118,7 +119,8 @@ export default (api, documentPath?: string | undefined) => { } } - config.entry(`document_${entryName}`).add( + const documentEntry = getDocumentEntryName(entryName); + config.entry(documentEntry).add( `${require.resolve('./Loaders/render-loader')}?${qs.stringify({ documentPath, entryPath, diff --git a/packages/plugin-rax-web/src/utils/document.ts b/packages/plugin-rax-web/src/utils/document.ts index f5ac28e36..5e64c543c 100644 --- a/packages/plugin-rax-web/src/utils/document.ts +++ b/packages/plugin-rax-web/src/utils/document.ts @@ -20,3 +20,7 @@ export function getDocument({ name, source }) { } return documentMap[entryName]; } + +export function getDocumentEntryName(entryName: string) { + return `document_${entryName.split('/').join('_')}`; +}