Paul Gschwendtner 9dd3f0344f
Further clean-up rules_nodejs npm workspace and remove yarn.lock (#29779)
* build: disconnect `@npm` workspace from main project

This will speed up significantly as we don't need to fetch all
dependencies again just for the `@npm` repository that is at this point
only leveraged by the `ng_package` rule for some of its dependencies.

This commit allows us to drop the `yarn.lock` and Aspect lock files, and
allows us to independently migrate `ng_package` to `rules_js`.

It also allows us to drop the `_rjs` TS interop layer in follow-up commits.

* build: drop `_rjs` suffix from `ts_project` targets

We don't need the `ts_project` interop in principle
at this point. We only have one remaining instance left for the SSR
`ng_package` integration. This commit cleans up all usages.

* build: remove yarn

* build: avoid duplicated dependencies at top-level

`rules_js` seems to be sensitive if there are similar versions of the same
package installed, but with differently matched peer dependencies. This
is fine because we can (and should long-term) move those dependencies to
their package-local `package.json` files. This commit unblocks the
migration and highlights how we can move deps to the individual packages
in the future.

* build: update checkout github action

This will allow us to use pnpm.

* build: update node to avoid strict-engines error caused by `npm`

Avoids:

```
Lockfile is up to date, resolution step is skipped
 ERR_PNPM_UNSUPPORTED_ENGINE  Unsupported environment (bad pnpm and/or Node.js version)

Your Node version is incompatible with "npm@11.2.0".

Expected version: ^20.17.0 || >=22.9.0
Got: v20.11.1
```

Note that we won't update the WORKSPACE test version as that would mean
we need to update the Node engines for shipped packages; and we can't do
this right now without introducing a breaking change.

* build: fix missing dependency for spec bundling

The beasties JS sources weren't available for bundling in the
`bazel-bin`, and this surfaced in RBE. This commit fixes this.
2025-03-11 10:05:52 +01:00
..

@schematics/angular

This package contains a collection of schematics for generating an Angular application.

Schematics

Name Description
app-shell Generates an app shell for running a server-side version of an app
application Generates a new basic app definition in the "projects" subfolder of the workspace
class Creates a new, generic class definition in the given project
component Creates a new, generic component definition in the given project
directive Creates a new, generic directive definition in the given project
enum Generates a new, generic enum definition in the given project
guard Generates a new, generic route guard definition in the given project
interceptor Creates a new, generic interceptor definition in the given project
interface Creates a new, generic interface definition in the given project
library Creates a new, generic library project in the current workspace
module Creates a new, generic NgModule definition in the given project
ng-new Creates a new project by combining the workspace and application schematics
pipe Creates a new, generic pipe definition in the given project
resolver Creates a new, generic resolver definition in the given project
service Creates a new, generic service definition in the given project
service-worker Pass this schematic to the "run" command to create a service worker
web-worker Creates a new, generic web worker definition in the given project
workspace Initializes an empty workspace and adds the necessary dependencies required by an Angular application

Disclaimer

While the schematics when executed via the Angular CLI and their associated options are considered stable, the programmatic APIs are not considered officially supported and are not subject to the breaking change guarantees of SemVer.