-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Labels
- P4: importantViolate documented behavior or significantly impacts performance (priority)Violate documented behavior or significantly impacts performance (priority)feat: containerRelated to the container API (scope)Related to the container API (scope)
Description
Astro Info
Astro v5.0.3
Node v20.11.1
System Windows (x64)
Package Manager pnpm
Output static
Adapter none
Integrations @astrojs/tailwind
@astrojs/mdx
@astrojs/react
@astrojs/sitemap
If this issue only occurs in one browser, which browser is a problem?
No response
Describe the Bug
After upgrading to Astro 5, i noticed the following:
npm run astro build works:
PS C:\***\***\***.de> npm i
> ***[email protected] postinstall
> lefthook install
sync hooks: ✔️ (commit-msg, pre-commit)
added 667 packages, and audited 668 packages in 38s
236 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
PS C:\***\***\***.de> npm run astro build
> ***[email protected] astro
> astro build
16:12:33 [content] Syncing content
16:12:33 [content] Content config changed
16:12:33 [content] Astro version changed
16:12:33 [content] Clearing content store
[Shiki] The language "hex" doesn't exist, falling back to "plaintext".
16:12:33 [content] Synced content
16:12:33 [types] Generated 1.45s
16:12:33 [build] output: "static"
16:12:33 [build] directory: C:\***\***\***.de\dist\
16:12:33 [build] Collecting build info...
16:12:33 [build] ✓ Completed in 1.49s.
16:12:33 [build] Building static entrypoints...
16:12:36 [vite] ✓ built in 2.35s
16:12:36 [build] ✓ Completed in 2.37s.
building client (vite)
16:12:36 [vite] ✓ 83 modules transformed.
16:12:36 [vite] dist/_astro/client.DNpcs3m7.js 1.82 kB │ gzip: 0.91 kB
16:12:36 [vite] dist/_astro/ImageWithModal.C6dIqcxn.js 33.08 kB │ gzip: 11.58 kB
16:12:36 [vite] dist/_astro/index.EISe-aAG.js 141.72 kB │ gzip: 45.60 kB
16:12:36 [vite] ✓ built in 354ms
generating static routes
16:12:36 ▶ src/pages/404.astro
16:12:36 └─ /404.html (+10ms)
16:12:36 ▶ src/pages/blog.astro
16:12:36 └─ /blog/index.html (+7ms)
16:12:36 ▶ src/pages/consulting.astro
16:12:36 └─ /consulting/index.html (+2ms)
16:12:36 ▶ src/pages/datenschutz.astro
16:12:36 └─ /datenschutz/index.html (+2ms)
16:12:36 ▶ src/pages/impressum.astro
16:12:36 └─ /impressum/index.html (+2ms)
16:12:36 ▶ src/pages/posts/[...slug].astro
...
16:12:36 └─ /posts/markdown-test/index.html (+1ms)
16:12:36 ▶ src/pages/privacy-policy.astro
16:12:36 └─ /privacy-policy/index.html (+2ms)
16:12:36 ▶ src/pages/projects.astro
16:12:36 └─ /projects/index.html (+2ms)
16:12:36 λ src/pages/robots.txt.ts
16:12:36 └─ /robots.txt (+1ms)
16:12:36 λ src/pages/rss.xml.js
16:12:36 └─ /rss.xml (+9ms)
16:12:36 ▶ src/pages/simple-game-clock.astro
16:12:36 └─ /simple-game-clock/index.html (+1ms)
16:12:36 ▶ src/pages/tags/[tag].astro
16:12:36 ├─ /tags/blog/index.html (+2ms)
16:12:36 ├─ /tags/tech/index.html (+1ms)
16:12:36 ├─ /tags/home-automation/index.html (+1ms)
16:12:36 ├─ /tags/home-assistant/index.html (+1ms)
16:12:36 ├─ /tags/esp32/index.html (+1ms)
16:12:36 ├─ /tags/web-development/index.html (+1ms)
16:12:36 ├─ /tags/astro/index.html (+1ms)
16:12:36 ├─ /tags/obsidian/index.html (+1ms)
16:12:36 ├─ /tags/raspberry-pi/index.html (+1ms)
16:12:36 └─ /tags/games/index.html (+1ms)
16:12:36 ▶ src/pages/tags/index.astro
16:12:36 └─ /tags/index.html (+2ms)
16:12:36 ▶ src/pages/index.astro
16:12:36 └─ /index.html (+2ms)
16:12:36 ▶ /atom.xml
16:12:36 └─ /atom.xml/index.html (+2ms)
16:12:36 ▶ /cv
16:12:36 └─ /cv/index.html (+1ms)
16:12:36 ▶ /feed
16:12:36 └─ /feed/index.html (+1ms)
16:12:36 ✓ Completed in 324ms.
16:12:36 [@astrojs/sitemap] `sitemap-index.xml` created at `dist`
16:12:36 [build] 36 page(s) built in 4.58s
16:12:36 [build] Complete!
PS C:\***\***\***.de>
pnpm run astro build fails:
PS C:\***\***\***.de> pnpm i
Lockfile is up to date, resolution step is skipped
Packages: +642
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 642, reused 642, downloaded 0, added 642, done
node_modules/.pnpm/[email protected]/node_modules/sharp: Running install script, done in 76ms
node_modules/.pnpm/[email protected]/node_modules/lefthook: Running postinstall script, done in 271ms
dependencies:
+ @astrojs/mdx 4.0.1
+ @astrojs/react 4.0.0
+ @astrojs/rss 4.0.10
+ @astrojs/sitemap 3.2.1
+ @astrojs/tailwind 5.1.3
+ @r4ai/remark-callout 0.6.2
+ @radix-ui/react-dialog 1.1.2
+ @types/mdast 4.0.4
+ astro 5.0.3
+ clsx 2.1.1
+ hast-util-from-html-isomorphic 2.0.0
+ react 18.3.1
+ react-dom 18.3.1
+ rehype-autolink-headings 7.1.0
+ rehype-slug 6.0.0
+ remark-github-blockquote-alert 1.3.0
+ remark-toc 9.0.0
+ sanitize-html 2.13.1
+ tailwind-merge 2.5.5
+ unified 11.0.5
+ unist-util-visit 5.0.0
devDependencies:
+ @astrojs/check 0.9.4
+ @biomejs/biome 1.9.4
+ @commitlint/cli 19.6.0
+ @commitlint/config-conventional 19.6.0
+ @commitlint/types 19.5.0
+ @tailwindcss/forms 0.5.9
+ @tailwindcss/typography 0.5.15
+ @types/react 18.3.13
+ @types/react-dom 18.3.1
+ lefthook 1.9.0
+ prettier 3.4.2
+ prettier-plugin-astro 0.14.1
+ prettier-plugin-tailwindcss 0.6.9
+ tailwindcss 3.4.16
+ typescript 5.7.2
> ***[email protected] postinstall C:\***\***\***.de
> lefthook install
sync hooks: ✔️ (pre-commit, commit-msg)
Done in 4.9s
PS C:\***\***\***.de> pnpm run astro build
> ***[email protected] astro C:\***\***\***.de
> astro "build"
16:13:23 [content] Syncing content
16:13:23 [content] Content config changed
16:13:23 [content] Astro version changed
16:13:23 [content] Clearing content store
[Shiki] The language "hex" doesn't exist, falling back to "plaintext".
16:13:24 [content] Synced content
16:13:24 [types] Generated 1.13s
16:13:24 [build] output: "static"
16:13:24 [build] directory: C:\***\***\***.de\dist\
16:13:24 [build] Collecting build info...
16:13:24 [build] ✓ Completed in 1.18s.
16:13:24 [build] Building static entrypoints...
16:13:29 [ERROR] [vite] x Build failed in 4.50s
[vite]: Rollup failed to resolve import "fsevents" from "C:/***/***/***.de/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js".
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
`build.rollupOptions.external`
Stack trace:
at viteWarn (file:///C:/***/***/***.de/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:50728:17)
at onRollupWarning (file:///C:/***/***/***.de/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-yUJfKD1i.js:50758:5)
at file:///C:/***/***/***.de/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:19475:13
at ModuleLoader.handleInvalidResolvedId (file:///C:/***/***/***.de/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:20090:26)
at async file:///C:/***/***/***.de/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:20036:32
ELIFECYCLE Command failed with exit code 1.
PS C:\***\***\***.de>
The culprit seems to be the rss config. As soon as I remove the file, it works with pnpm as well:
import { getCollection } from "astro:content";
import { SITE } from "@/config";
import mdxRenderer from "@astrojs/mdx/server.js";
import reactRenderer from "@astrojs/react/server.js";
import rss from "@astrojs/rss";
import { experimental_AstroContainer as AstroContainer } from "astro/container";
import sanitizeHtml from "sanitize-html";
export async function GET(context) {
const container = await AstroContainer.create();
container.addServerRenderer({ renderer: mdxRenderer });
container.addServerRenderer({ renderer: reactRenderer });
const publishedBlogEntries = await getCollection("posts", ({ data }) => {
return Boolean(data.published);
});
const sortedPosts = Object.values(publishedBlogEntries).sort((a, b) => {
if (!a.data.published || !b.data.published) {
return -1;
}
return (
new Date(b.data.published).valueOf() -
new Date(a.data.published).valueOf()
);
});
return rss({
title: SITE.title,
description: SITE.description,
site: context.site,
items: await Promise.all(
sortedPosts.map(async (post) => {
const rssEntry = {
title: post.data.title,
description: post.data.description,
pubDate: post.data.published,
link: `/posts/${post.slug}/`,
};
// For now, only add the content when it can be rendered.
// Should be fixed soon, see https://github.com/withastro/astro/issues/11407
try {
const { Content } = await post.render();
const postHtml = await container.renderToString(Content);
const sanitizedHtml = sanitizeHtml(postHtml, {
allowedTags: sanitizeHtml.defaults.allowedTags.concat(["img"]),
});
rssEntry.content = sanitizedHtml;
} catch (error) {
console.log(`Can't render feed content for ${post.slug}, skipping.`);
}
return rssEntry;
}),
),
customData: "<language>en-us</language>",
stylesheet: "/assets/styles/rss.xsl",
});
}Removing the import { experimental_AstroContainer as AstroContainer } from "astro/container"; fixes the hangup.
Reminds me of #11128, but since that one has been fixed apparently, it might be something else as well.
What's the expected result?
Compilation working with pnpm as well.
Link to Minimal Reproducible Example
No link because Stackblitz doesn't allow using pnpm as far as I can tell.
Participation
- I am willing to submit a pull request for this issue.
HiDeoo, coderfee, floriangaechter and laurens94
Metadata
Metadata
Assignees
Labels
- P4: importantViolate documented behavior or significantly impacts performance (priority)Violate documented behavior or significantly impacts performance (priority)feat: containerRelated to the container API (scope)Related to the container API (scope)