[文档] 更好的/简单的设置/安装Angular方式

fcg9iug3  于 6个月前  发布在  Angular
关注(0)|答案(4)|浏览(71)

描述你遇到的问题

安装或升级Angular时遇到的问题:

  • 全局安装Angular CLI
  • 然后使用ng new my-app

这两个步骤应该是一个,并且应该避免全局安装。
大多数其他框架都不需要全局安装。

输入出现问题的主题的URL

https://angular.io/guide/setup-local

描述你在文档中寻找的内容

设置Angular应用的更好且简单的方法

描述导致你遇到问题的行为

当你在本地将应用程序升级到新版本时:
你有一个本地CLI和一个全局CLI,版本不同。
当你在全局范围内运行ng命令时,会在命令行中看到关于版本差异的警告。
为了避免这个问题,我不得不删除全局CLI并安装与本地相同的新版本,这浪费时间且困难,因为有时很难删除全局深度,这可能因操作系统而异。
另一个问题也会出现,那就是当你还需要更新节点版本时,你同样需要全局安装CLI,这也是浪费时间。

描述你希望解决的问题,以便解决问题

不要依赖于全局CLI,通过避免全局安装来避免依赖。
从版本11开始,我使用npx来设置新应用程序并运行命令生成组件等,
所以在文档中,不要遵循以下命令:
npm install -g @angular/cling new my-app
这个单一的命令就足够了:
npx @angular/cli new my-app
有了这个,当新版本发布或更新节点版本时,就不需要全局安装/更新CLI了。
更新的重点应该是你正在工作的应用程序。

如果有截图可以说明问题,请添加

  • 无响应*

如果这个问题导致了异常或错误,请在这里粘贴它

  • 无响应*

如果问题是特定于浏览器的,请指定设备、操作系统、浏览器和版本

  • 无响应*

尽可能详细地提供任何其他信息

  • 无响应*
w8rqjzmb

w8rqjzmb1#

如果需要,可以使用以下命令禁用上述警告:

ng config -g cli. warnings. versionmismatch false

Angular确实提供了一个创建包的功能,用户可以使用它替代 npx
示例:

npm

npm init @angular@latest [project-name] -- [...options]

yarn

yarn create @angular [project-name] [...options]

话虽如此,拥有全局CLI确实比仅使用本地版本提供一些优势,主要优点包括:

  • 自动补全
  • 直接运行 ng 命令
rjjhvcjd

rjjhvcjd2#

你好@alan-agius4,
当你与团队合作时,禁用警告不是一个选项。而且如果有新成员加入,我必须记住那个命令,这是浪费时间。正如我所说,全局CLI在更新节点或本地项目时很难管理。例如,你有一个本地版本为15的应用程序,而你的全局CLI版本为11,这里就会出现问题,因为你无法以独立的方式生成组件基础,因为不存在该标志。或者,如果你想创建一个新应用程序,而你的CLI版本为14或更低,你将无法使用独立标志创建新应用程序。这就是全局CLI的问题,你无法利用框架的新/最新功能。而且没有全局安装,你可以 npx ngnpm run ng ,所以ng全局带来的问题比优势还要多。
这个问题的主要目的是简化Angular的设置与其他框架相比,只需一个命令。因此,为了避免这些问题,我的建议是在文档中说明:

  • 不推荐全局安装CLI。
  • 作为替代方案,可以使用以下命令:

npx @angular/cli new my-app
或者像你建议的那样
npm init @angular@latest [project-name] -- [...options] (我认为这没有文档记录,就像npx一样也没有文档记录)

  • 例如,要创建一个组件,只需使用 npx ng g c [name] [options]
  • 或者在package.json中创建本地命令,因为ng命令已经在那里可用了。
p8ekf7hl

p8ekf7hl3#

例如,您在本地有一个版本为15的应用程序,而您的全局CLI版本为11。在这里,您会遇到一个问题,因为无法以独立的方式生成组件基础,因为该标志不存在。

实际上,这不是一个问题。如果存在项目版本,全局安装的CLI将执行并使用该项目版本。您可以在前后方向上混合全局和项目版本。

ztmd8pv5

ztmd8pv54#

实际上这不是一个问题。如果项目中存在版本,那么全局安装的CLI将执行并使用该项目版本。你可以在前后混合使用全局和项目版本。

你好@clydin,即使这是真的,我之前不知道,而且它没有文档记录,只适用于现有项目。
当从旧的全局CLI(例如v13)创建新项目时,它将创建一个具有v13版本的项目,而不是最新版本,对吗?
无论如何,我认为现在没有必要拥有全局CLI,这会污染操作系统。正如我所说,每次更新节点时,你都必须记住要全局安装它,而当你可以简单地在本地运行相同的命令时,这是不必要的步骤。
当你升级一个项目时,你只需关注项目的本地深度,就像迁移指南中提到的那样。
当然,这对于初学者来说很容易开始,只需执行一个命令来创建项目。
请再次更新文档,通过以下方式安装Angular;
npx @angular/cli new my-app
或者像你建议的那样
npm init @angular@latest [project-name] -- [...options]
并删除全局安装CLI的建议。
谢谢!

相关问题