-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix: Vue
script setup
with other renderers applied (#4706)
* fix: add __ssrInlineRender to Vue check * chore: remove console log * test: vue builds with other renderer present * chore: changeset
- Loading branch information
1 parent
100b8d0
commit b0ee81d
Showing
9 changed files
with
179 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@astrojs/vue': patch | ||
--- | ||
|
||
Fix Vue `script setup` with other renderers applied |
8 changes: 8 additions & 0 deletions
8
packages/astro/test/fixtures/vue-with-multi-renderer/astro.config.mjs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
import { defineConfig } from 'astro/config'; | ||
import svelte from '@astrojs/svelte'; | ||
import vue from '@astrojs/vue'; | ||
|
||
// https://astro.build/config | ||
export default defineConfig({ | ||
integrations: [vue(), svelte()], | ||
}); |
10 changes: 10 additions & 0 deletions
10
packages/astro/test/fixtures/vue-with-multi-renderer/package.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"name": "@test/vue-with-multi-renderer", | ||
"version": "0.0.0", | ||
"private": true, | ||
"dependencies": { | ||
"@astrojs/vue": "workspace:*", | ||
"@astrojs/svelte": "workspace:*", | ||
"astro": "workspace:*" | ||
} | ||
} |
54 changes: 54 additions & 0 deletions
54
packages/astro/test/fixtures/vue-with-multi-renderer/src/components/Counter.vue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<template> | ||
<div :id="id" class="counter"> | ||
<button class="decrement" @click="subtract()">-</button> | ||
<pre>{{count}}</pre> | ||
<button class="increment" @click="add()">+</button> | ||
</div> | ||
<div :id="messageId" class="message"> | ||
<slot /> | ||
</div> | ||
</template> | ||
|
||
<script> | ||
import { ref } from 'vue'; | ||
export default { | ||
props: { | ||
id: { | ||
type: String, | ||
required: true | ||
}, | ||
count: { | ||
type: Number, | ||
default: 0 | ||
} | ||
}, | ||
setup(props) { | ||
const id = props.id; | ||
const count = ref(props.count); | ||
const messageId = `${id}-message`; | ||
const add = () => (count.value = count.value + 1); | ||
const subtract = () => (count.value = count.value - 1); | ||
return { | ||
count, | ||
id, | ||
messageId, | ||
add, | ||
subtract, | ||
}; | ||
}, | ||
}; | ||
</script> | ||
|
||
<style> | ||
.counter { | ||
display: grid; | ||
font-size: 2em; | ||
grid-template-columns: repeat(3, minmax(0, 1fr)); | ||
margin-top: 2em; | ||
place-items: center; | ||
} | ||
.message { | ||
text-align: center; | ||
} | ||
</style> |
15 changes: 15 additions & 0 deletions
15
...ges/astro/test/fixtures/vue-with-multi-renderer/src/components/CounterWithScriptSetup.vue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<template> | ||
<div :id="id" class="counter"> | ||
<button class="decrement" @click="subtract()">-</button> | ||
<pre>{{count}}</pre> | ||
<button class="increment" @click="add()">+</button> | ||
</div> | ||
</template> | ||
|
||
<script setup> | ||
import { ref } from 'vue'; | ||
const count = ref(0); | ||
const add = () => (count.value = count.value + 1); | ||
const subtract = () => (count.value = count.value - 1); | ||
</script> |
55 changes: 55 additions & 0 deletions
55
packages/astro/test/fixtures/vue-with-multi-renderer/src/pages/index.astro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--- | ||
import Counter from '../components/Counter.vue'; | ||
import CounterWithScriptSetup from '../components/CounterWithScriptSetup.vue'; | ||
const someProps = { | ||
count: 0, | ||
}; | ||
--- | ||
|
||
<html> | ||
<head> | ||
<!-- Head Stuff --> | ||
</head> | ||
<body> | ||
<Counter id="server-only" {...someProps}> | ||
<h1>Hello, server!</h1> | ||
</Counter> | ||
|
||
<Counter id="client-idle" {...someProps} client:idle> | ||
<h1>Hello, client:idle!</h1> | ||
</Counter> | ||
|
||
<Counter id="client-load" {...someProps} client:load> | ||
<h1>Hello, client:load!</h1> | ||
</Counter> | ||
|
||
<Counter id="client-visible" {...someProps} client:visible> | ||
<h1>Hello, client:visible!</h1> | ||
</Counter> | ||
|
||
<Counter id="client-media" {...someProps} client:media="(max-width: 50em)"> | ||
<h1>Hello, client:media!</h1> | ||
</Counter> | ||
|
||
<CounterWithScriptSetup id="server-only" {...someProps}> | ||
<h1>Hello, server!</h1> | ||
</CounterWithScriptSetup> | ||
|
||
<CounterWithScriptSetup id="client-idle" {...someProps} client:idle> | ||
<h1>Hello, client:idle!</h1> | ||
</CounterWithScriptSetup> | ||
|
||
<CounterWithScriptSetup id="client-load" {...someProps} client:load> | ||
<h1>Hello, client:load!</h1> | ||
</CounterWithScriptSetup> | ||
|
||
<CounterWithScriptSetup id="client-visible" {...someProps} client:visible> | ||
<h1>Hello, client:visible!</h1> | ||
</CounterWithScriptSetup> | ||
|
||
<CounterWithScriptSetup id="client-media" {...someProps} client:media="(max-width: 50em)"> | ||
<h1>Hello, client:media!</h1> | ||
</CounterWithScriptSetup> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import { expect } from 'chai'; | ||
import * as cheerio from 'cheerio'; | ||
import { loadFixture } from './test-utils.js'; | ||
|
||
describe('Vue with multi-renderer', () => { | ||
let fixture; | ||
|
||
before(async () => { | ||
fixture = await loadFixture({ | ||
root: './fixtures/vue-with-multi-renderer/', | ||
}); | ||
}); | ||
|
||
it('builds with another renderer present', async () => { | ||
try { | ||
await fixture.build(); | ||
} catch (e) { | ||
expect(e).to.equal(undefined, `Should not throw`); | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.