diff --git a/packages/platform/src/lib/content-plugin.ts b/packages/platform/src/lib/content-plugin.ts new file mode 100644 index 000000000..518796a00 --- /dev/null +++ b/packages/platform/src/lib/content-plugin.ts @@ -0,0 +1,28 @@ +import { Plugin } from 'vite'; + +/** + * This excludes the build from including the + * @analogjs/content package because it is + * dynamically imported at runtime. + * + * This prevents a dependency on @analogjs/router + * to @analogjs/content + * + * @returns + */ +export function contentPlugin(): Plugin[] { + return [ + { + name: 'analogjs-content-plugin', + config() { + return { + build: { + rollupOptions: { + external: ['@analogjs/content'], + }, + }, + }; + }, + }, + ]; +} diff --git a/packages/platform/src/lib/platform-plugin.ts b/packages/platform/src/lib/platform-plugin.ts index 32fe46a1b..71cfa11c3 100644 --- a/packages/platform/src/lib/platform-plugin.ts +++ b/packages/platform/src/lib/platform-plugin.ts @@ -5,12 +5,14 @@ import { viteNitroPlugin } from './vite-nitro-plugin'; import { routerPlugin } from './router-plugin'; import { devServerPlugin } from './ssr/dev-server-plugin'; import { ssrBuildPlugin } from './ssr/ssr-build-plugin'; +import { contentPlugin } from './content-plugin'; export function platformPlugin(opts: Options = {}): Plugin[] { return [ viteNitroPlugin(opts, opts?.nitro), (opts.ssr ? ssrBuildPlugin() : false) as Plugin, ...routerPlugin(), + ...contentPlugin(), (opts.ssr ? devServerPlugin({ entryServer: opts.entryServer }) : false) as Plugin,