diff options
Diffstat (limited to 'packages/integrations/vue')
-rw-r--r-- | packages/integrations/vue/package.json | 2 | ||||
-rw-r--r-- | packages/integrations/vue/src/index.ts | 12 | ||||
-rw-r--r-- | packages/integrations/vue/test/basics.test.js | 9 | ||||
-rw-r--r-- | packages/integrations/vue/test/fixtures/basics/public/light_walrus.avif | bin | 0 -> 19439 bytes | |||
-rw-r--r-- | packages/integrations/vue/test/fixtures/basics/src/components/Image.vue | 3 | ||||
-rw-r--r-- | packages/integrations/vue/test/fixtures/basics/src/pages/public.astro | 5 |
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 Binary files differnew file mode 100644 index 000000000..89e1c3a14 --- /dev/null +++ b/packages/integrations/vue/test/fixtures/basics/public/light_walrus.avif 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 /> |