mirror of
https://github.com/angular/angular-cli.git
synced 2025-04-20 03:08:38 +08:00
* 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.
<!-- BEFORE UPDATING THIS FILE, READ THIS. This file is automatically generated during release. It is important for you to not update README directly. - If you need to change the content, update `scripts/templates/readme.ejs` - If you need to add/remove a package or a link, update the .monorepo.json file instead. Any changes to README.md directly will result in a failure on CI. --> <h1 style="text-align: center">Angular CLI - The CLI tool for Angular.</h1> <p style="text-align: center"> <br> <img src="/docs/images/angular-cli-logo.png" alt="Angular CLI logo" width="100px" height="108px"/> <br><br> <em>The Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, <br>and maintain Angular applications directly from a command shell.</em> <br> </p> <p style="text-align: center"> <a href="https://angular.dev/tools/cli"><strong>angular.dev/tools/cli</strong></a> <br> </p> <p style="text-align: center"> <a href="CONTRIBUTING.md">Contributing Guidelines</a> · <a href="https://github.com/angular/angular-cli/issues">Submit an Issue</a> · <a href="https://blog.angular.dev">Blog</a> <br> <br> </p> <hr> ## Documentation Get started with Angular CLI, learn the fundamentals and explore advanced topics on our documentation website. - [Getting started][quickstart] - [CLI][cli] - [Workspace and project file structure][filestructure] - [Workspace configuration][workspaceconfig] - [Schematics][schematics] ## Development Setup ### Prerequisites - Install [Node.js] which includes [Node Package Manager][npm] ### Setting Up a Project Install the Angular CLI globally: ``` npm install -g @angular/cli ``` Create workspace: ``` ng new [PROJECT NAME] ``` Run the application: ``` cd [PROJECT NAME] ng serve ``` Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions. ## Quickstart [Get started in 5 minutes][quickstart]. ## Ecosystem <p> <img src="/docs/images/angular-ecosystem-logos.png" alt="angular ecosystem logos" width="500px" height="auto"> </p> - [Angular Framework][adev] - [Angular Material][angularmaterial] ## Changelog [Learn about the latest improvements][changelog]. ## Upgrading Check out our [upgrade guide](https://update.angular.dev/) to find out the best way to upgrade your project. ## Contributing ### Contributing Guidelines Read through our [contributing guidelines][contributing] to learn about our submission process, coding rules and more. ### Want to Help? Want to report a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for [contributing][contributing] and then check out one of our issues labeled as <kbd>[help wanted](https://github.com/angular/angular-cli/labels/help%20wanted)</kbd> or <kbd>[good first issue](https://github.com/angular/angular-cli/labels/good%20first%20issue)</kbd>. ### Code of Conduct Help us keep Angular open and inclusive. Please read and follow our [Code of Conduct][codeofconduct]. ### Developer Guide Read through our [developer guide][developer] to learn about how to build and test the Angular CLI locally. ## Community Join the conversation and help the community. - [X (formerly Twitter)][twitter] - [Discord][discord] - [Gitter][gitter] - [YouTube][youtube] - [StackOverflow][stackoverflow] - Find a Local [Meetup][meetup] ## Packages This is a monorepo which contains many tools and packages: <% const sections = [ ...new Set(packages.map(pkgName => monorepo.packages[pkgName].section )) ].filter(x => x && x != 'Tooling'); sections.unshift(undefined); %> ### Tools | Project | Package | Version | Links | |---|---|---|---| <% for (const pkgName of packages) { const mrPkg = monorepo.packages[pkgName]; if (mrPkg.section != 'Tooling') { continue; } %>**<%= mrPkg.name%>**<% %> | [`<%= pkgName %>`](https://npmjs.com/package/<%= pkgName %>)<% %> | [ %>/latest.svg)](https://npmjs.com/package/<%= pkgName %>)<% %> | <% for (const link of mrPkg.links || []) { %>[](<%= link.url %>)<% } if (mrPkg.snapshotRepo) { %> [](https://github.com/<%= mrPkg.snapshotRepo %>)<% } %> <% } %> ### Packages <% for (const section of sections) { %><%= section ? '#### ' + section : '' %> | Project | Package | Version | Links | |---|---|---|---| <% for (const pkgName of packages) { const mrPkg = monorepo.packages[pkgName]; if (mrPkg.section != section) { continue; } %>**<%= mrPkg.name%>**<% %> | [`<%= pkgName %>`](https://npmjs.com/package/<%= pkgName %>)<% %> | [ %>/latest.svg)](https://npmjs.com/package/<%= pkgName %>)<% %> | <% for (const link of mrPkg.links || []) { %>[](<%= link.url %>)<% } if (mrPkg.snapshotRepo) { %> [](https://github.com/<%= mrPkg.snapshotRepo %>)<% } %> <% } %> <% } %> **Love Angular CLI? Give our repo a star :star: :arrow_up:.** [contributing]: CONTRIBUTING.md [developer]: docs/DEVELOPER.md [quickstart]: https://angular.dev/tutorials/learn-angular [changelog]: CHANGELOG.md [documentation]: https://angular.dev/overview [angularmaterial]: https://material.angular.io/ [cli]: https://angular.dev/tools/cli [adev]: https://angular.dev/ [workspaceconfig]: https://angular.dev/reference/configs/workspace-config [schematics]: https://angular.dev/tools/cli/schematics [filestructure]: https://angular.dev/reference/configs/file-structure [node.js]: https://nodejs.org/ [npm]: https://www.npmjs.com/get-npm [codeofconduct]: https://github.com/angular/angular/blob/main/CODE_OF_CONDUCT.md [twitter]: https://www.x.com/angular [discord]: https://discord.gg/angular [gitter]: https://gitter.im/angular/angular-cli [stackoverflow]: https://stackoverflow.com/questions/tagged/angular-cli [youtube]: https://youtube.com/angular [meetup]: https://www.meetup.com/find/?keywords=angular