如何使用Angular CLI安装特定版本的Angular?

175

我通过 Google 和 Angular CLI 文档搜索,但是找不到使用 Angular CLI 安装特定版本的 Angular 的方法。这是否可能?


3
没有直接的方法,但你可以创建一个新项目,然后只需在 package.json 文件中更改版本号为你想要的版本即可。 - Dinistro
1
你可以查看这个答案 https://dev59.com/mqjja4cB1Zd3GeqP6y11#52067532 它对我有用。 - Ferie
25个回答

171
回答你的问题,假设你对一个特定的angular版本感兴趣,而不是一个特定的angular-cli版本(毕竟,angular-cli只是一种工具)。
一个合理的做法是让你的angular-cli版本与你的angular版本保持一致,否则你可能会遇到不兼容的问题。因此,获取正确的angular-cli版本将导致您获得所需的angular版本。
基于这个假设,你的问题不是关于angular-cli,而是关于npm
下面是解决方法:
[步骤0-可选] 如果你不确定你的环境中安装了哪个angular-cli版本,可以卸载它。
npm uninstall -g @angular/cli

然后,运行(可能需要使用--force标志)

npm cache clean

或者,如果您正在使用npm>5。

npm cache verify

[步骤 1] 安装特定版本的angular-cli

npm install -g @angular/cli@wished.version.here

[步骤 2] 创建一个项目

ng new you-app-name

最终生成的白色应用将会以所需的Angular版本创建。

注意:我没有找到任何显示Angularangular-cli兼容性矩阵的页面。因此,我猜唯一确定应该安装哪个angular-cli版本的方法是尝试各种版本,创建一个新项目并查看package.json以查看使用了哪个Angular版本。

Angular版本变更日志 这是来自 GitHub 存储库的更新日志,在那里您可以检查可用版本和差异。


在按照您的步骤进行npm install -g @angular-cli@1.7.4时,出现了以下错误:npm ERR!无效的软件包名称“@angular-cli”:名称只能包含URL友好字符。 - MPPNBD
3
应该这样安装:npm install -g @angular/cli@1.7.4 - Esther Lalremruati
@avi.elkharrat,非常抱歉,我错过了那个。npm install -g @angular/cli@1.7.4 对我有用。非常感谢你,avi.elkharrat。 - MPPNBD
npm uninstall -g @angular/cli -> 运行这个命令后,我发现 Angular 仍然存在。 - ankit singh
我是在Windows桌面上完成的,没有sudo。 - avi.elkharrat

72

您可以只有一个带有特定版本的package.json,然后执行npm install,它将安装该版本。

此外,您不需要依赖于 angular-cli 来开发您的项目。


20
但是在我看来,你应该依赖于CLI。顺便说一下,现在不再是angular-cli,而是angular/cli。另外,它是npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest - Ben Racicot
你说要编辑 package.json 文件,但是这个文件在哪里? - Yagnesh bhalala
你可以通过运行 npm init 命令自动添加 package.json 文件,也可以在项目的根目录手动创建它。 - Mario Petrovic
package.json 中更改版本后,请确保执行 npm install - Shayma Pathan

40

编辑 #2 (2017年7月2日)

如果您现在安装 Angular CLI,您可能会得到新的名称为 @angular/cli 的版本,因此您需要使用以下命令进行卸载:

npm uninstall -g @angular/cli

按照上面的代码进行操作。由于我仍然因此获得了赞,所以我更新了我的答案,为那些因某些原因想使用旧版本的人提供帮助。


编辑 #1

如果你真的想使用Angular的旧版本来创建新项目,请在最终发布之前尝试降级angular-cli。例如:

npm uninstall -g angular-cli
npm cache clean
npm install -g angular-cli@1.0.0-beta.32

初始

你可以在 package.json 中更改 Angular 的版本。我猜你想使用较旧的 Angular 版本,但我建议你使用最新版本。使用:

ng new app-name

将始终使用最新版本的Angular。


1
我正在使用一个BaaS提供商,该提供商仍不支持ng4。 - Sajad
1
@sajad 非常遗憾。我认为你可以从cli创建一个先前版本的angular。我会编辑我的答案。 - brijmcq
@epiphanatic 我的错,对于造成的困惑我感到抱歉。CLI将使用在CLI更新时最新版本的Angular。如果您想要更新它,您需要在应用程序的package.json文件中手动更新它。Angular的更新发布速度比Angular CLI快得多。请查看此链接以了解更多信息http://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html。希望这能够消除您的困惑。 - brijmcq
1
只是补充一下,npm cache clean 对我没有起作用,我不得不使用 npm cache clean --force - Kaloyan Stamatov
安装也是新的,格式需要像 npm install -g @angular/cli@6.0.7 这样,也可以参考 avi.elkharrat 的回答 - JabberwockyDecompiler
显示剩余3条评论

35

npx @angular/cli@10 new my-project

你可以把 10 替换成你选择的版本……不需要卸载你现有的CLI!刚刚学到了这一点……


1
这个回答应该有更多的投票。更糟糕的是,你可能会遇到一个错误:检测到npm版本7.20.5。Angular CLI当前需要npm版本6.。可以通过 npm install --global npm@6 来解决。 - Jonathan
完美且最简单的解决方案。允许您为新项目安装比全局命令行界面中的版本更早的Angular版本。感谢分享。 - Neil Cresswell

32

angular/cli版本和它们安装的angular/compiler版本如下:

  • 1.0 - 1.4.x = ^4.0.0
  • 1.5.x = ^5.0.0
  • 1.6.x - 1.7.x = ^5.2.0
  • 6.x = ^6.0.0
  • 7.x = ^7.0.0

可以通过查看angular/clipackage.json文件来确认,该文件位于存储库 新存储库 主存储库中。您需要安装特定的cli版本才能获取特定的angular版本:

npm -g install @angular/cli@1.5.* # For ^5.0.0

2
我在电脑上全局安装了Angular 11,但是我需要在6中创建一个新项目。根据以上信息,我分三步完成: 1)创建一个新目录 2)npm install @angular/cli@6.* 3)ng new [angular-six-project-name] - Andrew Koper
感谢您详细的解释。 - ni8mr

20

是的,可以使用npm安装特定版本的Angular:(链接)

npm install -g @angular/cli@8.3.19

接下来,您需要使用ng new命令基于安装CLI时使用的特定版本创建一个Angular项目:

ng new your-project-name

这将会根据安装 Angular CLI 时指定的版本,生成一个基于 Angular v8.3.19 的项目。


17

使用下面的命令安装和降级特定版本。
卸载CLI

npm uninstall -g @angular/cli

清除npm缓存

 npm cache clean --force

安装cli

npm install -g @angular/cli@_choose_your_version

12

在你的 package.json 的 'dependencies' 部分指定你想要的版本,然后从你的根项目文件夹在控制台/终端中运行以下命令:

npm install
例如,以下内容将会特别安装版本为v4.3.4。
"dependencies": {
    "@angular/common": "4.3.4",
    "@angular/compiler": "4.3.4",
    "@angular/core": "4.3.4",
    "@angular/forms": "4.3.4",
    "@angular/http": "4.3.4",
    "@angular/platform-browser": "4.3.4",
    "@angular/platform-browser-dynamic": "4.3.4",
    "@angular/router": "4.3.4",
  }

您还可以添加以下修饰符来调整版本号的特定程度:

插入符号 ^

将您更新到由第一个数字指定的最新主要版本:

^4.3.0

将加载最新的 4.x.x 版本,但不会加载 5.x.x。

波浪符 ~

将您更新到由第二个数字指定的最新小版本:

~4.3.0

此命令将加载最新的4.3.x版本,但不会加载4.4.x版本。


7

npm i -g @angular/cli@x.y.z

x、y、z 为你想要安装的版本号。


使用 Angular CLI - Crusader

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接