From 32767f43b67920440cd1fcb5eb4aaf619b5a1bf5 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 28 Apr 2023 07:53:43 +0200 Subject: [PATCH 1/2] Fix REPL in dev --- build-plugins/replace-browser-modules.ts | 13 ++++++++++--- docs/.vitepress/config.ts | 18 ++---------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/build-plugins/replace-browser-modules.ts b/build-plugins/replace-browser-modules.ts index 36f955fec6b..e0023412482 100644 --- a/build-plugins/replace-browser-modules.ts +++ b/build-plugins/replace-browser-modules.ts @@ -1,6 +1,6 @@ import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; -import type { Plugin } from 'rollup'; +import type { Plugin } from 'vite'; const resolve = (path: string) => fileURLToPath(new URL(`../${path}`, import.meta.url)); @@ -14,10 +14,10 @@ const REPLACED_MODULES = [ 'resolveId' ]; -export const resolutions: ReadonlyMap = new Map( +const resolutions: ReadonlyMap = new Map( REPLACED_MODULES.flatMap(module => { const originalId = resolve(`src/utils/${module}`); - const replacementId = resolve(`browser/src//${module}.ts`); + const replacementId = resolve(`browser/src/${module}.ts`); return [ [originalId, replacementId], [`${originalId}.ts`, replacementId] @@ -27,11 +27,18 @@ export const resolutions: ReadonlyMap = new Map( export default function replaceBrowserModules(): Plugin { return { + apply: 'serve', + enforce: 'pre', name: 'replace-browser-modules', resolveId(source, importer) { if (importer && source[0] === '.') { return resolutions.get(join(dirname(importer), source)); } + }, + transformIndexHtml(html) { + // Unfortunately, picomatch sneaks as a dedendency into the dev bundle. + // This fixes an error. + return html.replace('', ''); } }; } diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index bdbca8aaa4f..dad6edde1f7 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,7 +1,7 @@ import alias from '@rollup/plugin-alias'; import { defineConfig } from 'vitepress'; import { moduleAliases } from '../../build-plugins/aliases'; -import { resolutions } from '../../build-plugins/replace-browser-modules'; +import replaceBrowserModules from '../../build-plugins/replace-browser-modules'; import '../declarations.d'; import { examplesPlugin } from './create-examples'; import { renderMermaidGraphsPlugin } from './mermaid'; @@ -135,21 +135,7 @@ export default defineConfig({ vite: { plugins: [ renderMermaidGraphsPlugin(), - { - apply: 'serve', - enforce: 'pre', - name: 'replace-browser-modules', - resolveId(source, importer) { - if (importer && source.startsWith('/@fs')) { - return resolutions.get(source.slice(4)); - } - }, - transformIndexHtml(html) { - // Unfortunately, picomatch sneaks as a dedendency into the dev bundle. - // This fixes an error. - return html.replace('', ''); - } - }, + replaceBrowserModules(), { apply: 'build', enforce: 'pre', From ab678aa22e45e933564e99dcc5d332db9c222e68 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 28 Apr 2023 21:25:51 +0200 Subject: [PATCH 2/2] Maybe improve test stability --- test/watch/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/watch/index.js b/test/watch/index.js index fe4e87920d6..ac7551fb37d 100644 --- a/test/watch/index.js +++ b/test/watch/index.js @@ -1263,7 +1263,7 @@ describe('rollup.watch', () => { it('rebuilds immediately by default', async () => { await copy('test/watch/samples/basic', 'test/_tmp/input'); - await wait(200); + await wait(300); watcher = rollup.watch({ input: 'test/_tmp/input/main.js', output: {