From f9914730013c8ff02d85655d32b38938bb904175 Mon Sep 17 00:00:00 2001 From: Chau Tran Date: Tue, 27 Feb 2024 09:34:10 -0600 Subject: [PATCH] feat(vite-plugin-angular): expose esbuild entry point (#910) --- packages/vite-plugin-angular/esbuild.ts | 30 +++++++++++++++++++++++ packages/vite-plugin-angular/project.json | 7 +++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 packages/vite-plugin-angular/esbuild.ts diff --git a/packages/vite-plugin-angular/esbuild.ts b/packages/vite-plugin-angular/esbuild.ts new file mode 100644 index 000000000..e8d8f28c6 --- /dev/null +++ b/packages/vite-plugin-angular/esbuild.ts @@ -0,0 +1,30 @@ +import analog from '@analogjs/vite-plugin-angular'; +import type * as esbuild from 'esbuild'; + +export const analogSFC: () => esbuild.Plugin = () => ({ + name: 'analog-sfc-esbuild-plugin', + async setup(build) { + const analogPlugins: any = analog({ + experimental: { supportAnalogFormat: true }, + }); + + const analogPlugin = analogPlugins[0]; + await analogPlugin.config({ root: '.' }, { command: 'build' }); + await analogPlugin.buildStart?.({ + plugins: [ + { + name: 'vite:css', + transform(code: string) { + return { code }; + }, + }, + ], + }); + + build.onLoad({ filter: /.analog$/ }, async (args) => { + await analogPlugin.handleHotUpdate?.({ file: args.path, modules: [] }); + const result = await analogPlugin.transform?.('', args.path); + return { loader: 'js', contents: result?.code }; + }); + }, +}); diff --git a/packages/vite-plugin-angular/project.json b/packages/vite-plugin-angular/project.json index d66219b78..c2eed9972 100644 --- a/packages/vite-plugin-angular/project.json +++ b/packages/vite-plugin-angular/project.json @@ -15,7 +15,12 @@ "packages/vite-plugin-angular/*.md", "packages/vite-plugin-angular/migrations/migration.json" ], - "updateBuildableProjectDepsInPackageJson": false + "updateBuildableProjectDepsInPackageJson": false, + "additionalEntryPoints": [ + "packages/vite-plugin-angular/esbuild.ts", + "packages/vite-plugin-angular/setup-vitest.ts" + ], + "generateExportsField": true } }, "test": {