有没有办法用 ng new 命令指定角度版本
Posted
技术标签:
【中文标题】有没有办法用 ng new 命令指定角度版本【英文标题】:Is there a way to specify angular version with the ng new command 【发布时间】: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 版获取
【问题讨论】:
【参考方案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
命令提供版本参数会更好。以上是关于有没有办法用 ng new 命令指定角度版本的主要内容,如果未能解决你的问题,请参考以下文章