Skip to content

RFC: Introduce Analog application builder/dev-server #770

@brandonroberts

Description

@brandonroberts

Which scope/s are relevant/related to the feature request?

platform

Information

We've been discussing whether to pivot Analog more towards Angular tooling because the Angular team doesn't have any plans that I know of to support Vite in an "Angular as a Vite plugin" type of way, so there's always going to be friction there in the way the Angular CLI approaches tooling (no config access) vs Analog (Access to config + plugins)

Some notes:

One side:

  • We get the benefits of Angular tooling + Analog DX. We can still support Vitest through a builder.
  • Nitro still works either way, could be turned into a builder
  • We do things "The Angular Way"
  • All current features would still be supported

Other side:

  • We could lose "being powered by Vite" for both build and serve, and a bit of the ecosystem and composability of plugins.
  • The Analog Vite plugin for Angular would still be usable for outside ecosystems (Astro, Qwik, Playwright, Vanilla Vite + Angular app) and moved to a standalone repo.
  • Have to do a bit of work to port over to esbuild plugins (to support content routes, markdown)
  • Filesystem-based routing works already through an esbuild plugin
  • Still needs a custom builder to enable esbuild plugins like @analogjs/platform:application and @analogjs/platform:dev-server
  • Still lose Angular i18n support, but maybe gets closer because we're using Angular tooling

Hybrid option:
A hybrid approach could to use Angular build tooling + Vite for build/serve and keep access to the Vite config for additional customization. The Angular CLI only uses Vite for the dev server, but we could still use it for dev/prod.

Describe any alternatives/workarounds you're currently using

No response

I would be willing to submit a PR to fix this issue

  • Yes
  • No

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions