What's Changed
Installing and setting up
- fix: remove the unused optional
@angular/platform-serverpeer dependency, which madenpm installandng add @angular/firefail withERESOLVEon an app one Angular patch behind the newest release. by @armando-navarro in #3792 - fix:
ng add @angular/fireno longer stops withInvalid project id: myApp.for a project whose name has capital letters. It andng deployalso no longer crash withCannot read properties of undefined (reading 'email')on firebase-tools 15.26 or later when run without a terminal, for example by an AI agent. by @armando-navarro in #3769
Compiling
- fix: the
@angular/fire/compat/storagetypings no longer importfirebase/compat, which failed the build withTS2307undermoduleResolution: "bundler". by @armando-navarro in #3796
Server-side rendering
- fix:
beforeAuthStateChangedfrom@angular/fire/authno longer keeps the app from ever becoming stable for a visitor who never signs in or out. Its callback still runs inside Angular's zone and injection context. by @armando-navarro in #3770
Deploying (ng deploy)
- fix:
ng deploystops when agcloudstep fails. Before, a failure with any exit code other than 1 was ignored and the deploy went on to Firebase Hosting as if it had worked. It also passesgcloudarguments as an array, so a space in the workspace path or inGOOGLE_APPLICATION_CREDENTIALSno longer splits them. by @herdiyana256 in #3726 - fix:
ng deployruns its commands without a shell. A workspace path containing a space no longer breaks the Cloud Functions deploy, and values read fromangular.jsonno longer reach a shell. by @herdiyana256 in #3738 - fix: the code and Dockerfile that
ng deploygenerates for SSR now escape or validate theangular.jsonvalues they use (output path, function name, Node.js version). A crafted value could previously place arbitrary code in the generated files. by @herdiyana256 in #3739 - fix:
ng deploywrites the generated Cloud Run entry paths with forward slashes on every machine. Running it from Windows wrote backslash paths, which the Linux-based Cloud Run runtime cannot resolve. by @fr-esco in #3274
Release process
- fix: a 20.x release tagged after 21.0.0 publishes to the
v20-ltsnpm tag instead oflatest, so it can't replace 21 as the versionnpm install @angular/fireinstalls. by @armando-navarro in #3794
Check your angular.json before ng deploy
ng deploy now checks some angular.json values before it starts, and refuses ones that 20.1.0 let through.
One of these checks can stop a deploy that worked on 20.1.0:
- The
outputPathof your build and server targets can't contain a backslash,$, a quote, a backtick or a line break, or start with-. A hand-edited Windows-style path such asdist\app\browseris the likely case. Use forward slashes, as the Angular CLI writes them.
Full Changelog: 20.1.0...20.1.1