Hey - This is cool addition to Vite.
Trying the Vite 4 beta on a solution, where Vite is running through a middleware to do serverside rendering.
I have the following code, to inject the React preamble. For some reason, it seems like the plugin tries to instantiate it.
if (import.meta.env.DEV && import.meta.env.MODE !== 'test') {
/**
* Inject the React Refresh runtime. This is required to get HMR working on dev
* https://vitejs.dev/guide/backend-integration.html
**/
output.push(
`<script type='module' src='${assetUrl}@vite/client'></script>`
);
output.push(`<script type='module'>
import RefreshRuntime from "${assetUrl}@react-refresh"
RefreshRuntime.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
window.__vite_plugin_react_preamble_installed__ = true
</script>`);
}
Results in me getting:
ReferenceError: window is not defined
at eval (/src/entry-server.ts:6:3)
at async instantiateModule (/node_modules/.pnpm/vite@4.0.0-beta.2/node_modules/vite/dist/node/chunks/dep-666774f5.js:53227:9)
Seems to be caused by this specific line (inside the template string):
window.$RefreshReg$ = () => {}
If i remove that from the preamble, it renders correctly.
I've tried a few different scenarios, and it seems that the line being anywhere inside the code causes it to fail.
As a comment
// window.$RefreshReg$ = () => {}
As a string
'window.$RefreshReg$ = () => {}'
Without assignment
If change it to something else, like window.$RefreshRg$, the site renders.
Hey - This is cool addition to Vite.
Trying the Vite 4 beta on a solution, where Vite is running through a middleware to do serverside rendering.
I have the following code, to inject the React preamble. For some reason, it seems like the plugin tries to instantiate it.
Results in me getting:
Seems to be caused by this specific line (inside the template string):
If i remove that from the preamble, it renders correctly.
I've tried a few different scenarios, and it seems that the line being anywhere inside the code causes it to fail.
As a comment
As a string
Without assignment
If change it to something else, like
window.$RefreshRg$, the site renders.