Angular 同一台计算机中的不同版本

Angular 同一台计算机中的不同版本,angular,angular-cli,Angular,Angular Cli,我和Angular2在几个项目中合作。每个项目都使用不同版本的angularcli,因此,我需要能够使用正确版本的angularcli分别为生产运行和编译。当我使用save dev本地安装angular cli时,找不到ng命令,因此无法为项目创建生成分发版 因此,问题是,如何在同一台机器上安装多个angular cli版本,而不全局安装(使用-g选项)?,可以在不全局安装angular cli的情况下运行ng命令?您应该始终能够通过运行以下命令来运行当前目录版本的angular cli: no

我和Angular2在几个项目中合作。每个项目都使用不同版本的
angularcli
,因此,我需要能够使用正确版本的
angularcli
分别为生产运行和编译。当我使用
save dev
本地安装
angular cli
时,找不到ng命令,因此无法为项目创建生成分发版


因此,问题是,如何在同一台机器上安装多个
angular cli
版本,而不全局安装(使用-g选项)?,可以在不全局安装
angular cli
的情况下运行ng命令?

您应该始终能够通过运行以下命令来运行当前目录版本的angular cli:

node_modules/.bin/ng <ANY NG COMMAND>
请注意,反勾号用于
npm bin
,而不是单引号符号

ng
命令也添加到
package.json
scripts
部分,因此也可以像这样运行本地副本:

npm run ng -- <NG_OPTIONS>
这里,
npx
临时安装最新@7版本的
@angular/cli
,并使用传递的参数运行其
ng
可执行文件

您甚至可以做一些完全无用的事情(因为
@angular/cli
的本地副本安装了
ng new
)。在@7新项目上使用@6版本的CLI运行
ng serve

cd <APP_NAME>
npx @angular/cli@6 serve
您可以使用节点版本管理器,它允许您在每个节点版本中使用不同的全局模块

在我的例子中,我在一个项目中使用节点6.9.5和Angular2,在另一个项目中使用节点10和Angular6


您只需注意哪个版本已就位,并像您一样正常工作

如果有人像我一样带着同样的问题来到这里,我发现这种方法是最简单的。我有
@angular/cli@1.7.3
全球安装,因为我有一个从该版本(angular 5.0)创建的正在进行的项目,但我想安装
@angular/cli@6.0.0
。 我所做的是安装,然后使用
npx

安装
npx
frpm
npm

npm install -g npx
使用所需的cli版本创建新项目。使用
@angular/cli@latest
或只需
@angular/cli
即可获得最新版本

npx -p @angular/cli@6.0.0 ng new my-project
在项目根文件夹中,执行
ng--version
以查看cli的版本。但是我建议您对每个使用
ng
的命令使用
npx
前缀,如下所示

npx ng --version

npx ng generate component my-component

此处,
npx
查找
ng
命令存在于
/node\u modules/.bin/
目录中并执行它。

另一种解决方案如下:

  • 创建一个新文件夹并使用
    npminit
    实例化一个节点项目
  • 安装与所需版本相关的Angular CLI
  • 删除
    package.json
    文件
  • 创建/导入具有与CLI相关版本的Angular项目
  • 创建Dockerfile

    FROM node:8
    WORKDIR /app
    RUN npm install -g @angular/cli@6.1.1
    
    建立这个码头工人形象

    docker build . -t angular/ng6.1.1
    
    在最后一步中运行docker映像构建

    docker run --rm -it -v $(pwd):/app angular/ng6.1.1 ng new hello-angular
    
    您将发现hello angular项目是在您的本地文件夹中创建的,如果您愿意 使用不同的angular版本,在docker文件中更改angular/cli版本并构建 新建docker图像以创建新的角度项目。

    假设:

    a。您已经安装了一个angular版本并在您的机器上工作。现在你想安装一个不同的角度版本

    b。您已为当前Angular项目全局安装Angular CLI

    c。您正在使用Ubuntu/Linux

    几个重要的公司:

    $ node -v
    $ npm -v
    $ ng v
    
  • 安装NVM:

    一,。在安装nvm之前,请在终端中运行此命令:
    touch~/.bash\u profile

    Add following lines in  ~/.bashrc file
    
    sudo vim  ~/.bashrc
    
    source ~/.nvm/nvm.sh
    export NVM_DIR="$HOME/.nvm"
    
    二,。之后,在终端中运行此命令:

    curl-o-https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh |bash

    iii.不要忘记重新启动终端或使用命令
    $source~/.nvm/nvm.sh
    (这将刷新系统路径中的可用命令)

    iv.在终端中,使用命令
    $nvm--version
    ,您应该会看到版本

    五,。现在安装特定的节点版本

    例如新的/角度回购/路径$nvm安装13.11.0

    vi.检查使用以下方式安装的节点版本列表:

    新建/角度回购/路径$nvm列表

    七,。要将特定节点用于当前项目使用,请执行以下操作:

    new/angular repo/path$nvm使用v13.11.0

  • 安装特定的Angular CLI

    new/angular repo/path$npm install@angular/cli@7.2.4

  • 要安装所有依赖项,请运行以下命令:

    new/angular repo/path$npm安装

    完成上述命令后。确保节点、Angular CLI、NPM和Angular具有预期版本

    新建/角度回购/路径$ng v

  • 如果npm版本未按照上述命令中的要求显示,则使用以下命令安装特定版本

    new/angular repo/path$npm安装npm@version


  • 希望能有所帮助。

    谢谢您的回复,我从来没有像您说的那样做过。相反,我想知道怎么做。在当前的工作项目中,您可以自由使用所需的angular cli版本,如果全局安装angular cli(-g选项),则在创建生成分发(ng build--prod)时,它将使用本地版本而不是全局版本。这样,您的计算机上始终安装了最新版本,并且可以从ng运行命令,而无需位于本地bin文件夹中。我会把这个问题标记为完成谢谢你的回答!!!上面的评论对我不起作用-但答案有效,即node_modules/。bin/ng这个答案是否取决于某些东西(比如cli),安装为“dev”还是“global”?哪一个?问题是abo
    docker build . -t angular/ng6.1.1
    
    docker run --rm -it -v $(pwd):/app angular/ng6.1.1 ng new hello-angular
    
    $ node -v
    $ npm -v
    $ ng v
    
    Add following lines in  ~/.bashrc file
    
    sudo vim  ~/.bashrc
    
    source ~/.nvm/nvm.sh
    export NVM_DIR="$HOME/.nvm"