summaryrefslogtreecommitdiff
path: root/packages/integrations/vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/vue')
-rw-r--r--packages/integrations/vue/package.json2
-rw-r--r--packages/integrations/vue/src/index.ts12
-rw-r--r--packages/integrations/vue/test/basics.test.js9
-rw-r--r--packages/integrations/vue/test/fixtures/basics/public/light_walrus.avifbin0 -> 19439 bytes
-rw-r--r--packages/integrations/vue/test/fixtures/basics/src/components/Image.vue3
-rw-r--r--packages/integrations/vue/test/fixtures/basics/src/pages/public.astro5
6 files changed, 28 insertions, 3 deletions
diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json
index 60943076c..f2718b3ff 100644
--- a/packages/integrations/vue/package.json
+++ b/packages/integrations/vue/package.json
@@ -40,7 +40,7 @@
"test": "astro-scripts test \"test/**/*.test.js\""
},
"dependencies": {
- "@vitejs/plugin-vue": "^4.5.0",
+ "@vitejs/plugin-vue": "^5.0.4",
"@vitejs/plugin-vue-jsx": "^3.1.0",
"@vue/babel-plugin-jsx": "^1.1.5",
"@vue/compiler-sfc": "^3.3.8"
diff --git a/packages/integrations/vue/src/index.ts b/packages/integrations/vue/src/index.ts
index b65d27499..62ca0946c 100644
--- a/packages/integrations/vue/src/index.ts
+++ b/packages/integrations/vue/src/index.ts
@@ -65,7 +65,7 @@ function virtualAppEntrypoint(options?: Options): Plugin {
if (appEntrypoint) {
return `\
import * as mod from ${JSON.stringify(appEntrypoint)};
-
+
export const setup = async (app) => {
if ('default' in mod) {
await mod.default(app);
@@ -101,12 +101,20 @@ export const setup = async (app) => {
}
async function getViteConfiguration(options?: Options): Promise<UserConfig> {
+ let vueOptions = {
+ ...options,
+ template: {
+ ...options?.template,
+ transformAssetUrls: false,
+ },
+ } satisfies VueOptions;
+
const config: UserConfig = {
optimizeDeps: {
include: ['@astrojs/vue/client.js', 'vue'],
exclude: ['@astrojs/vue/server.js', 'virtual:@astrojs/vue/app'],
},
- plugins: [vue(options), virtualAppEntrypoint(options)],
+ plugins: [vue(vueOptions), virtualAppEntrypoint(vueOptions)],
ssr: {
external: ['@vue/server-renderer'],
noExternal: ['vuetify', 'vueperslides', 'primevue'],
diff --git a/packages/integrations/vue/test/basics.test.js b/packages/integrations/vue/test/basics.test.js
index 7db2deb37..4eb2b987c 100644
--- a/packages/integrations/vue/test/basics.test.js
+++ b/packages/integrations/vue/test/basics.test.js
@@ -21,4 +21,13 @@ describe('Basics', () => {
assert.notEqual(bar, undefined);
assert.equal(bar.getAttribute('slot'), null);
});
+
+ it('Can show images from public', async () => {
+ const data = await fixture.readFile('/public/index.html');
+ const { document } = parseHTML(data);
+ const img = document.querySelector('img');
+
+ assert.notEqual(img, undefined);
+ assert.equal(img.getAttribute('src'), '/light_walrus.avif');
+ });
});
diff --git a/packages/integrations/vue/test/fixtures/basics/public/light_walrus.avif b/packages/integrations/vue/test/fixtures/basics/public/light_walrus.avif
new file mode 100644
index 000000000..89e1c3a14
--- /dev/null
+++ b/packages/integrations/vue/test/fixtures/basics/public/light_walrus.avif
Binary files differ
diff --git a/packages/integrations/vue/test/fixtures/basics/src/components/Image.vue b/packages/integrations/vue/test/fixtures/basics/src/components/Image.vue
new file mode 100644
index 000000000..5618c579b
--- /dev/null
+++ b/packages/integrations/vue/test/fixtures/basics/src/components/Image.vue
@@ -0,0 +1,3 @@
+<template>
+ <img src="/light_walrus.avif" />
+</template>
diff --git a/packages/integrations/vue/test/fixtures/basics/src/pages/public.astro b/packages/integrations/vue/test/fixtures/basics/src/pages/public.astro
new file mode 100644
index 000000000..011df270e
--- /dev/null
+++ b/packages/integrations/vue/test/fixtures/basics/src/pages/public.astro
@@ -0,0 +1,5 @@
+---
+import Image from "../components/Image.vue";
+---
+
+<Image />