【问题标题】:Is there a way to specify angular version with the ng new command有没有办法用 ng new 命令指定角度版本
【发布时间】:2019-10-29 02:43:07
【问题描述】:

我正在创建一个新的 Angular 项目,并希望所有 Angular 依赖项都来自稳定的第 7 版。然而,似乎在运行ng new app 命令时,Angular 总是获取最新版本。我的 package.json 显示了来自~8.0.0 的所有 Angular 包,如核心、动画等。

我知道我可以修改 package.json 并将这些依赖项设置为按照语义 7.xx 获取,但我希望它自动完成,这样我就不会遇到不匹配的机会任何对等依赖项。

那么,有没有一种方法可以告诉 CLI 获取特定的 Angular 版本以及根据该 Angular 版本获取的所有依赖项。

编辑:我已经尝试过安装@angular/cli@7.x.x。即使在执行此操作后,如果我运行新应用程序,我的依赖项也会按照第 8 版获取

【问题讨论】:

    标签: angular npm angular-cli package.json


    【解决方案1】:

    可以通过使用npx 命令下载并运行包而不安装它来完成。

    例如,npx @angular/cli@9 new my-project 在当前文件夹中创建一个新文件夹 my-project,并使用 Angular 版本 9 将新项目放在这里。在这种情况下,@angular/cli 的本地版本将与 @987654325 中使用的相同@ 命令,这样你就可以继续工作了。

    该命令的语法如下npx @angular/cli@<package version> new <project-name>

    【讨论】:

    • 这里没有按预期工作。似乎 npx 正在获取全局安装的 angular cli 版本的版本。删除全局 angular cli (npm uninstall -g @angular/cli) 时,npx 命令可以正常工作并安装指定的版本。
    • @spierala,如果您没有通过在软件包名称后添加 @<version> 来指定您想要的版本,它会选择您全局安装的版本。这就是为什么我将@9 放在我的答案中。
    • 我又试了一次......它在任何情况下都需要使用 Windows Power Shell(在 IntelliJ 中)的全局版本,但它工作正常,例如在 Git Bash 中。以后我会使用 Git Bash :)
    【解决方案2】:

    您也可以在本地安装 angular CLI...让我们在 /my-folder 中说:

    在我的文件夹中运行: npm i @angular/cli

    这将安装 CLI 的最新可用版本,但您可以安装任何现有版本(例如 npm i @angular/cli@8.x

    当 npm 安装完成后,Angular CLI 将出现在此处: /my-folder/node_modules/@angular/cli

    在我的文件夹中你可以运行ng new my-project

    这将在这里创建一个新的 Angular 项目: /我的文件夹/我的项目

    新项目的 Angular 版本将与本地 CLI 版本匹配。

    最后你应该删除 /my-folder/node_modules 它不再需要了。

    ng 命令将默认使用本地 Angular CLI(在本例中位于 /my-folder/node_modules 内)。如果没有本地 CLI,则将使用全局 CLI。

    【讨论】:

      【解决方案3】:

      没有办法告诉 Angular CLI 你要安装的特定 Angular 版本。相反,您可以切换到另一个版本的 Angular CLI,然后创建 Angular 项目。

      首先运行这些命令:

      npm uninstall -g @angular/cli
      npm install -g @angular/cli@7.1.0
      

      安装好之后就可以运行了:

      ng new angular7
      

      这将创建具有正确依赖项的 Angular 7 项目:

      "@angular/animations": "~7.1.0",
      "@angular/common": "~7.1.0",
      "@angular/compiler": "~7.1.0",
      "@angular/core": "~7.1.0",
      "@angular/forms": "~7.1.0"
      

      【讨论】:

      • 大多数人在执行上述操作之前需要运行npm uninstall -g @angular/cli
      • 正如我在答案中提到的,我已经在本地尝试过。但是,我将使用 -g 再次尝试并卸载,如果它适合我​​,我会更新。
      • 在我卸载以前的版本时工作。谢谢。但是,我认为如果可以使用ng new 命令提供版本参数会更好。
      猜你喜欢
      • 1970-01-01
      • 2021-01-18
      • 2015-12-20
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多