diff --git a/packages/core/src/htmlPlugin.ts b/packages/core/src/htmlPlugin.ts index 51039f1..34fede2 100644 --- a/packages/core/src/htmlPlugin.ts +++ b/packages/core/src/htmlPlugin.ts @@ -338,8 +338,9 @@ function createRewire( baseUrl: string, proxyUrlKeys: string[], ) { + const regWithBase = path.join(baseUrl, reg) return { - from: new RegExp(`^/${reg}*`), + from: new RegExp(`^/${reg}*|^${regWithBase}*`), to({ parsedUrl }: any) { const pathname: string = parsedUrl.path diff --git a/packages/playground/mpaBase/.env b/packages/playground/mpaBase/.env new file mode 100644 index 0000000..0c16508 --- /dev/null +++ b/packages/playground/mpaBase/.env @@ -0,0 +1,2 @@ +NODE_ENV=dev +ENV=env diff --git a/packages/playground/mpaBase/index.html b/packages/playground/mpaBase/index.html new file mode 100644 index 0000000..eb67b37 --- /dev/null +++ b/packages/playground/mpaBase/index.html @@ -0,0 +1,16 @@ + + + + + + + test-<%- title %> + + + +
+
index app
+
<%- ENV %>
+
<%- NODE_ENV %>
+ + diff --git a/packages/playground/mpaBase/other.html b/packages/playground/mpaBase/other.html new file mode 100644 index 0000000..f8125ef --- /dev/null +++ b/packages/playground/mpaBase/other.html @@ -0,0 +1,16 @@ + + + + + + + <%- title %> + + + +
<%- ENV %>
+
<%- NODE_ENV %>
+
+
other page
+ + diff --git a/packages/playground/mpaBase/package.json b/packages/playground/mpaBase/package.json new file mode 100644 index 0000000..3dee587 --- /dev/null +++ b/packages/playground/mpaBase/package.json @@ -0,0 +1,19 @@ +{ + "name": "playground-map", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "dependencies": { + "vite-plugin-html": "workspace:*", + "vue": "^3.2.31", + "vue-router": "^4.0.14" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^2.2.4", + "@vue/compiler-sfc": "^3.2.31", + "vite": "^2.8.6" + } +} diff --git a/packages/playground/mpaBase/public/favicon.ico b/packages/playground/mpaBase/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/packages/playground/mpaBase/public/favicon.ico differ diff --git a/packages/playground/mpaBase/public/inject.js b/packages/playground/mpaBase/public/inject.js new file mode 100644 index 0000000..118ee41 --- /dev/null +++ b/packages/playground/mpaBase/public/inject.js @@ -0,0 +1 @@ +console.log('inject successfully!') diff --git a/packages/playground/mpaBase/src/App.vue b/packages/playground/mpaBase/src/App.vue new file mode 100644 index 0000000..1c57433 --- /dev/null +++ b/packages/playground/mpaBase/src/App.vue @@ -0,0 +1,5 @@ + diff --git a/packages/playground/mpaBase/src/main.ts b/packages/playground/mpaBase/src/main.ts new file mode 100644 index 0000000..43a1997 --- /dev/null +++ b/packages/playground/mpaBase/src/main.ts @@ -0,0 +1,16 @@ +import { createApp } from 'vue' +import App from './App.vue' +import { createRouter, createWebHistory } from 'vue-router' +// import { createRouter, createWebHashHistory } from 'vue-router' + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/test', + component: () => import('./test.vue'), + }, + ], +}) + +createApp(App).use(router).mount('#app') diff --git a/packages/playground/mpaBase/src/other-app.vue b/packages/playground/mpaBase/src/other-app.vue new file mode 100644 index 0000000..f97a9a3 --- /dev/null +++ b/packages/playground/mpaBase/src/other-app.vue @@ -0,0 +1,6 @@ + diff --git a/packages/playground/mpaBase/src/other-main.ts b/packages/playground/mpaBase/src/other-main.ts new file mode 100644 index 0000000..66dc818 --- /dev/null +++ b/packages/playground/mpaBase/src/other-main.ts @@ -0,0 +1,15 @@ +import { createApp } from 'vue' +import App from './other-app.vue' +import { createRouter, createWebHashHistory } from 'vue-router' + +const router = createRouter({ + history: createWebHashHistory(), + routes: [ + { + path: '/test', + component: () => import('./test.vue'), + }, + ], +}) + +createApp(App).use(router).mount('#app') diff --git a/packages/playground/mpaBase/src/test.vue b/packages/playground/mpaBase/src/test.vue new file mode 100644 index 0000000..e598902 --- /dev/null +++ b/packages/playground/mpaBase/src/test.vue @@ -0,0 +1 @@ + diff --git a/packages/playground/mpaBase/vite.config.ts b/packages/playground/mpaBase/vite.config.ts new file mode 100644 index 0000000..fc39e45 --- /dev/null +++ b/packages/playground/mpaBase/vite.config.ts @@ -0,0 +1,59 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import { createHtmlPlugin } from 'vite-plugin-html' + +export default defineConfig({ + server: { + proxy: { + '/api': 'http://localhost:8080', + }, + }, + base: '/basetest/', + plugins: [ + vue(), + createHtmlPlugin({ + minify: true, + pages: [ + { + entry: 'src/main.ts', + filename: 'index.html', + template: 'index.html', + injectOptions: { + data: { + title: 'index', + injectScript: ``, + }, + tags: [ + { + injectTo: 'body-prepend', + tag: 'div', + attrs: { + id: 'tag1', + }, + }, + ], + }, + }, + { + entry: 'src/other-main.ts', + filename: 'other.html', + template: 'other.html', + injectOptions: { + data: { + title: 'other page', + }, + tags: [ + { + injectTo: 'body-prepend', + tag: 'div', + attrs: { + id: 'tag2', + }, + }, + ], + }, + }, + ], + }), + ], +})