angular-cli在同一台计算机上的不同版本

Rei*_*era 15 angular-cli angular

我在几个项目中使用angular2.每个项目都使用不同版本的angular-cli,因此,我需要能够使用正确版本的angular-cli分别运行和编译生产.当我使用save-dev安装angular-cli local时,找不到ng命令,所以我无法为项目创建构建分发.所以问题是,如何在同一台机器上安装多个angular-cli版本,而无需全局安装(使用-g选项)?,可以运行命令而无需全局安装angular-cli?请向任何指向正确方向的人表示非常感谢.

提前致谢...

And*_*riy 22

您应该始终能够通过运行以下命令ANGULAR CLI的当前目录版本上运行本地:

node_modules/.bin/ng <ANY NG COMMAND>
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

ng <ANY NG COMMAND>
Run Code Online (Sandbox Code Playgroud)

只需确保,您从主package.json所在的根目录运行此命令(及其node_modules目录)

有一个npm命令返回node_modules/.bin路径(可用于更短的写入):

`npm bin`/ng <ANY NG COMMAND>
Run Code Online (Sandbox Code Playgroud)

请注意,使用后面的刻度npm bin而不是单引号.


Nis*_*nga 9

万一其他人像我一样遇到同样的问题,我发现这种方法最简单。我已经@angular/cli@1.7.3从该版本(大致为Angular 5.0)创建了一个正在进行的项目,所以我已经进行了全局安装,但想要安装@angular/cli@6.0.0。我所做的是安装npx并使用创建项目npx

安装npxfrpmnpm

npm install -g npx
Run Code Online (Sandbox Code Playgroud)

使用所需的cli版本创建新项目。使用@angular/cli@latest或仅@angular/cli用于最新版本。

npx -p @angular/cli@6.0.0 ng new my-project
Run Code Online (Sandbox Code Playgroud)

在项目根文件夹中,执行ng -v以查看cli的版本。但是我建议您npx对每个使用ng如下命令的命令使用前缀。

npx ng -v //or npx ng -version

npx ng generate component my-component
Run Code Online (Sandbox Code Playgroud)

在这里,命令npx查找ng./node_modules/.bin/目录中本地存在并执行。

  • 太感谢了。唯一的小区别是使用“-v”对我不起作用,我必须使用“--version”。 (2认同)

小智 7

您可以使用NVM,它是一个 Node 版本管理器,允许您在每个 Node 版本中使用不同的全局模块。

就我而言,我在一个项目中使用 Node 6.9.5 和 Angular2,在另一个项目中使用 Node 10 和 Angular6。

您只需要注意哪个版本就座并像您一样正常工作。


小智 5

创建一个 Dockerfile

FROM node:8
WORKDIR /app
RUN npm install -g @angular/cli@6.1.1
Run Code Online (Sandbox Code Playgroud)

构建这个 docker 镜像

docker build . -t angular/ng6.1.1
Run Code Online (Sandbox Code Playgroud)

运行最后一步中的 docker 镜像构建

docker run --rm -it -v $(pwd):/app angular/ng6.1.1 ng new hello-angular
Run Code Online (Sandbox Code Playgroud)

你会发现 hello-Angular 项目已在本地文件夹中创建,如果你想使用不同的 Angular 版本,请更改 docker 文件中的 Angular/cli 版本并构建新的 docker 映像来创建新的 Angular 项目。