为什么 Angular 17 中不存在应用程序模块?

rip*_*ger 51 javascript typescript angular

我已经使用 npm 下载了新版本的 Angular,但没有看到app.module.ts文件。

它是否已从项目结构中删除?

Visual Studio 代码文件

我尝试过创建一个新的。看起来很奇怪。

Mat*_*ler 88

从 Angular v17 开始,Standalone 现在是 CLI 的新默认设置。

因此,当您创建新项目时,如果不指定任何内容,则其中不会有任何模块。

但是,仍然可以使用该--no-standalone标志创建基于模块的应用程序:ng new --no-standalone

独立组件是 v14 中引入的功能。随着 v17 的变化,Angular 团队强烈建议使用它们,因为它们更易于使用、理解并且需要更少的样板文件。

对于使用独立组件的教程,我建议您查看新的文档站点

  • @MartinSchneider我可以保证初学者正在做旧的/已弃用的事情。我刚刚开始学习 Angular,正在努力解决一个问题,我能找到的每一条指导都告诉我要在文件中放入不存在的内容。框架应该让事情变得更简单或更快,或者两者兼而有之,但 Angular 团队似乎还没有意识到这一点。 (23认同)
  • 试图回答OP问题“为什么Angular 17中不存在应用程序模块?”的部分 实在是太短了,不合我的口味。这个答案只是建议禁用默认设置。为什么不详细阐述一下原因,为什么 Angular 团队决定默认使应用程序独立?现在,这可能会导致初学者在学习 Angular 时做旧的/不赞成的事情。 (9认同)
  • @MartinSchneider 我同意。我不是角度专家,但它是我的首选前端。我主要是后端开发人员。但我发现,很多时候,当 Angular 版本发生变化时,他们会加入这些破坏性的更改,这些更改确实会让你陷入困境。这个特别的问题整个早上都让我背部疼痛。我从 1.0 版开始就一直使用 C# .NET,而 MS 从未做过这样的事情。他们引入了 .NET Core,但 .NET Framework 仍然存在,并且在大多数方面仍然向后兼容回 1.0。对于不经常关注 Angular 的人来说,这是一个很大的痛点。 (9认同)
  • 那么我们如何将延迟加载的路由添加到独立应用程序中呢? (3认同)
  • 在“app.config.ts”中使用“provideRouter()”! (2认同)
  • 我添加了一些附加信息。相信我,您确实想使用独立组件。 (2认同)
  • 使用应用程序模块“ng new test --no-standalone”创建一个新项目 Angular 17 (2认同)