Prevent bundling sharp (#8196)

This commit is contained in:
Bjorn Lu 2023-08-23 17:52:53 +08:00 committed by GitHub
parent 9f1881455a
commit 632579dc20
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 12 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Prevent bundling sharp as it errors in runtime

View file

@ -1,4 +1,4 @@
import type { UserConfig, Plugin as VitePlugin } from 'vite';
import type { Plugin as VitePlugin } from 'vite';
import type { BuildInternals } from '../internal.js';
import type { AstroBuildPlugin } from '../plugin';
import { normalizeEntryId } from './plugin-component-entry.js';
@ -8,19 +8,20 @@ export function vitePluginInternals(input: Set<string>, internals: BuildInternal
name: '@astro/plugin-build-internals',
config(config, options) {
const extra: Partial<UserConfig> = {};
const noExternal = [],
external = [];
if (options.command === 'build' && config.build?.ssr) {
noExternal.push('astro');
external.push('shiki');
}
extra.ssr = {
external,
noExternal,
return {
ssr: {
// Always bundle Astro runtime when building for SSR
noExternal: ['astro'],
// Except for these packages as they're not bundle-friendly. Users with strict package installations
// need to manually install these themselves if they use the related features.
external: [
'shiki', // For syntax highlighting
'sharp', // For sharp image service
],
},
};
return extra;
}
},
async generateBundle(_options, bundle) {