使用angular CLI安装特定版本的angular


Answers:


35

您只需要npm install安装具有特定版本的package.json即可,它将安装该版本。您也不必依赖于angular-cli开发您的项目。


14
但是您应该依赖CLI IMO。BTWangular/cli现在不再是angular-cli 。另外,这是npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest
本·拉乔科特

如您所说,编辑package.json文件,但是这个package.json文件在哪里?
Yagnesh bhalala

您可以通过执行npm init或在项目的根文件夹中手动创建package.json来自动添加
Mario Petrovic,

62

要回答您的问题,我们假设您对特定的角度版本感兴趣,而对特定的angular-cli版本不感兴趣(毕竟,angular-cli只是一种工具)。

合理的做法是使您的angular-cli版本与您的angular版本保持一致,否则您可能会陷入不兼容问题的风险。因此,获取正确的angular-cli版本将使您获得所需的angular版本。

根据该假设,您的问题不是有关angular-cli的问题,而是有关npm的问题

这是要走的路:

[STEP 0-可选]如果不确定您的环境中安装的angular-cli版本,请卸载它。

npm uninstall -g @angular/cli

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

npm cache clean

或者,如果您使用的是npm> 5。

npm cache verify

[STEP 1]安装angular-cli特定版本

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

[STEP 2]创建一个项目

ng new you-app-name

生成的白色应用将以所需的角度版本创建。

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

角版本变更日志 这是github重新定位的变更日志,您可以在其中检查可用的版本和差异。

希望能帮助到你


在执行步骤时,在npm期间安装-g @ angular-cli @ 1.7.4会收到类似此npm ERR的错误!无效的软件包名称“ @ angular-cli”:名称只能包含URL友好字符
MPPNBD

2
@MPPNBD应该是npm install -g @ angular / cli @ 1.7.4
Esther Lalremruati

@ avi.elkharrat,抱歉,我错过了。npm install -g @ angular / cli @ 1.7.4为我工作。非常感谢avi.elkharrat
MPPNBD

24

编辑#2(7/2/2017)

如果您现在安装angular cli,则可能会使用angular cli的新名称,即@angular/cli,因此您需要使用卸载它

npm uninstall -g @angular/cli

并按照上面的代码。我对此仍感到不满,因此我针对出于某些原因想要使用旧版本的用户更新了答案。


编辑#1

如果您确实想使用cli使用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
我正在使用仍不支持ng4的BaaS提供程序。
萨贾德

1
@sajad,这很不幸。我认为您可以从cli创建以前版本的angular。我将编辑答案
brijmcq

@brijmq我个人从未见过angular-cli“总是使用angular的最新版本”。例如,现在,如果您全局更新cli(1.1.3)并使用它创建一个新项目,即使最新版本是4.2.4,您也将获得angular 4.0.0。因此,我一直试图弄清楚的是,该版本是否会随着新的cli版本定期更新?
杰森·辛普森

@epiphanatic我很抱歉,对此感到困惑。cli在进行cli更新时会使用最新版本的angular。如果要更新它,则需要在应用程序的package.json上手动更新它。angular更新的发布要比angular-cli快得多。看看这个链接,了解更多angularjs.blogspot.com/2016/10/…。希望它能
消除

补充一点,这npm cache clean对我不起作用,我不得不使用npm cache clean --force
Kaloyan Stamatov,

13

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版本才能获得特定的角度版本:

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

9

在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.xx版本,但不会加载5.xx

波浪号〜

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

~4.3.0

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


9

是的,可以使用npm安装特定版本的Angular

npm install -g @angular/cli@8.3.19

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

ng new your-project-name

这将基于Angular v8.3.19(在安装Angular CLI时指定的版本)生成一个项目。


5

如果仍然有问题并且正在使用nvm,请确保设置nvm节点环境。

选择安装的最新版本。要查看版本,请使用nvm list

nvm use node
sudo npm remove -g @angular/cli
sudo npm install -g @angular/cli

或安装特定版本使用:

sudo npm install -g @angular/cli@7.2

如果您具有目录权限错误,请使用:

sudo npm install -g @angular/cli@7.2 --unsafe-perm

谢谢,但我认为您的回答无关紧要。
Sajad

5

使用以下命令来安装和降级特定版本。
卸载cli

npm uninstall -g @angular/cli

清理npm缓存

 npm cache clean --force

安装cli

npm install -g @angular/cli@_choose_your_version


2

在命令提示符下执行此命令,您将很高兴

npm install -g @angular/cli@version_name

0

使用以下命令安装特定版本。说您要安装angular / cli版本1.6.8,然后输入以下命令:

sudo npm install -g @angular/cli@1.6.8

这将安装 angular/cli version 1.6.8


不回答问题。
Sajad

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.