summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/eleven-monkeys-yell.md5
-rw-r--r--packages/astro/package.json2
-rw-r--r--packages/astro/src/core/build/static-build.ts7
-rw-r--r--packages/astro/src/vite-plugin-env/index.ts1
-rw-r--r--packages/astro/test/astro-envs.test.js5
-rw-r--r--packages/astro/test/fixtures/astro-envs/astro.config.mjs1
-rw-r--r--packages/astro/test/fixtures/astro-envs/src/pages/index.astro1
-rw-r--r--packages/astro/test/fixtures/unused-slot/src/components/Card.astro21
-rw-r--r--packages/astro/test/fixtures/unused-slot/src/pages/index.astro10
-rw-r--r--packages/astro/test/unused-slot.test.js19
-rw-r--r--pnpm-lock.yaml17
11 files changed, 82 insertions, 7 deletions
diff --git a/.changeset/eleven-monkeys-yell.md b/.changeset/eleven-monkeys-yell.md
new file mode 100644
index 000000000..2c0d7bc80
--- /dev/null
+++ b/.changeset/eleven-monkeys-yell.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Update rollup to fix default param regression
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 6cec560a8..dddbe0f82 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -119,7 +119,7 @@
"prompts": "^2.4.2",
"recast": "^0.20.5",
"resolve": "^1.22.0",
- "rollup": "^2.75.4",
+ "rollup": "^2.75.5",
"semver": "^7.3.7",
"serialize-javascript": "^6.0.0",
"shiki": "^0.10.1",
diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts
index 3fa065373..8a76e2e05 100644
--- a/packages/astro/src/core/build/static-build.ts
+++ b/packages/astro/src/core/build/static-build.ts
@@ -132,8 +132,11 @@ export async function staticBuild(opts: StaticBuildOptions) {
timer.generate = performance.now();
if (opts.buildConfig.staticMode) {
- await generatePages(ssrResult, opts, internals, facadeIdToPageDataMap);
- await cleanSsrOutput(opts);
+ try {
+ await generatePages(ssrResult, opts, internals, facadeIdToPageDataMap);
+ } finally {
+ await cleanSsrOutput(opts);
+ }
} else {
info(opts.logging, null, `\n${bgMagenta(black(' finalizing server assets '))}\n`);
await ssrMoveAssets(opts);
diff --git a/packages/astro/src/vite-plugin-env/index.ts b/packages/astro/src/vite-plugin-env/index.ts
index a510f2eee..672fe5a0f 100644
--- a/packages/astro/src/vite-plugin-env/index.ts
+++ b/packages/astro/src/vite-plugin-env/index.ts
@@ -85,6 +85,7 @@ export default function envVitePlugin({
replacements = Object.fromEntries(entries);
// These additional replacements are needed to match Vite
replacements = Object.assign(replacements, {
+ 'import.meta.env.SITE': astroConfig.site ? `'${astroConfig.site}'` : 'undefined',
// This catches destructed `import.meta.env` calls,
// BUT we only want to inject private keys referenced in the file.
// We overwrite this value on a per-file basis.
diff --git a/packages/astro/test/astro-envs.test.js b/packages/astro/test/astro-envs.test.js
index f44b007c8..da2332c9e 100644
--- a/packages/astro/test/astro-envs.test.js
+++ b/packages/astro/test/astro-envs.test.js
@@ -30,6 +30,11 @@ describe('Environment Variables', () => {
expect(indexHtml).to.include('BLUE_BAYOU');
});
+ it('does render builtin SITE env', async () => {
+ let indexHtml = await fixture.readFile('/index.html');
+ expect(indexHtml).to.include('http://example.com');
+ });
+
it('includes public env in client-side JS', async () => {
let dirs = await fixture.readdir('/');
let found = false;
diff --git a/packages/astro/test/fixtures/astro-envs/astro.config.mjs b/packages/astro/test/fixtures/astro-envs/astro.config.mjs
index 881930612..7bb1b85f1 100644
--- a/packages/astro/test/fixtures/astro-envs/astro.config.mjs
+++ b/packages/astro/test/fixtures/astro-envs/astro.config.mjs
@@ -3,5 +3,6 @@ import vue from '@astrojs/vue';
// https://astro.build/config
export default defineConfig({
+ site: 'http://example.com',
integrations: [vue()],
});
diff --git a/packages/astro/test/fixtures/astro-envs/src/pages/index.astro b/packages/astro/test/fixtures/astro-envs/src/pages/index.astro
index f71c11db7..3c265dbef 100644
--- a/packages/astro/test/fixtures/astro-envs/src/pages/index.astro
+++ b/packages/astro/test/fixtures/astro-envs/src/pages/index.astro
@@ -3,4 +3,5 @@ import Client from '../components/Client.vue';
---
<environment-variable>{import.meta.env.PUBLIC_PLACE}</environment-variable>
<environment-variable>{import.meta.env.SECRET_PLACE}</environment-variable>
+<environment-variable>{import.meta.env.SITE}</environment-variable>
<Client client:load />
diff --git a/packages/astro/test/fixtures/unused-slot/src/components/Card.astro b/packages/astro/test/fixtures/unused-slot/src/components/Card.astro
new file mode 100644
index 000000000..61fafb04c
--- /dev/null
+++ b/packages/astro/test/fixtures/unused-slot/src/components/Card.astro
@@ -0,0 +1,21 @@
+---
+export interface Props {
+ title: string,
+ body: string,
+ href: string,
+}
+const {href, title, body} = Astro.props;
+debugger;
+---
+<li class="link-card">
+ <a href={href}>
+ <h2>
+ {title}
+ <span>&rarr;</span>
+ </h2>
+ <p>
+ {body}
+ <slot name="icon" />
+ </p>
+ </a>
+</li>
diff --git a/packages/astro/test/fixtures/unused-slot/src/pages/index.astro b/packages/astro/test/fixtures/unused-slot/src/pages/index.astro
new file mode 100644
index 000000000..07f362b22
--- /dev/null
+++ b/packages/astro/test/fixtures/unused-slot/src/pages/index.astro
@@ -0,0 +1,10 @@
+---
+import Card from '../components/Card.astro';
+---
+<html>
+ <head><title>Testing</title></head>
+ <body>
+ <h1>Test</h1>
+ <Card title="A card" href="http://example.com" body="stuff" />
+ </body>
+</html>
diff --git a/packages/astro/test/unused-slot.test.js b/packages/astro/test/unused-slot.test.js
new file mode 100644
index 000000000..2c7ce226f
--- /dev/null
+++ b/packages/astro/test/unused-slot.test.js
@@ -0,0 +1,19 @@
+import { expect } from 'chai';
+import * as cheerio from 'cheerio';
+import { loadFixture } from './test-utils.js';
+
+describe('Unused slot', () => {
+ let fixture;
+
+ before(async () => {
+ fixture = await loadFixture({ root: './fixtures/unused-slot/' });
+ await fixture.build();
+ });
+
+ it('is able to build with the slot missing', async () => {
+ let html = await fixture.readFile('/index.html');
+ let $ = cheerio.load(html);
+ // No children, slot rendered as empty
+ expect($('body p').children().length).to.equal(0);
+ });
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 31d97d9f9..992924952 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -527,7 +527,7 @@ importers:
prompts: ^2.4.2
recast: ^0.20.5
resolve: ^1.22.0
- rollup: ^2.75.4
+ rollup: ^2.75.5
sass: ^1.52.1
semver: ^7.3.7
serialize-javascript: ^6.0.0
@@ -586,7 +586,7 @@ importers:
prompts: 2.4.2
recast: 0.20.5
resolve: 1.22.0
- rollup: 2.75.4
+ rollup: 2.75.5
semver: 7.3.7
serialize-javascript: 6.0.0
shiki: 0.10.1
@@ -12175,6 +12175,15 @@ packages:
hasBin: true
optionalDependencies:
fsevents: 2.3.2
+ dev: true
+
+ /rollup/2.75.5:
+ resolution: {integrity: sha512-JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: false
/run-parallel/1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@@ -13522,7 +13531,7 @@ packages:
esbuild: 0.14.42
postcss: 8.4.14
resolve: 1.22.0
- rollup: 2.75.4
+ rollup: 2.75.5
optionalDependencies:
fsevents: 2.3.2
dev: false
@@ -13546,7 +13555,7 @@ packages:
esbuild: 0.14.42
postcss: 8.4.14
resolve: 1.22.0
- rollup: 2.75.4
+ rollup: 2.75.5
sass: 1.52.1
optionalDependencies:
fsevents: 2.3.2