【问题标题】:Global Angular CLI version greater than local version全局 Angular CLI 版本大于本地版本
【发布时间】:2017-11-15 11:35:12
【问题描述】:

在运行 ng serve 时,我收到有关我的全局 CLI 版本高于本地版本的警告。我没有注意到此警告有任何问题,但我想知道这两个版本是否应该同步?另外,如果你有全球版本,是否需要有本地版本?

警告:

您的全局 Angular CLI 版本 (1.1.1) 高于本地版本 (1.0.6)。使用本地 Angular CLI 版本。

【问题讨论】:

  • 谁能回答为什么我们需要本地和全球?

标签: angular-cli


【解决方案1】:

要回答其中一个问题,必须同时进行全局和本地安装才能使工具正常工作。

如果您尝试在没有 CLI 本地安装(仅限全局安装)的应用程序上运行 ng serve,您将收到以下错误。

您必须在 Angular CLI 项目中才能使用 serve 命令。

它还会打印此消息:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

运行 npm 命令以在本地更新 CLI,并避免收到您收到的警告。

其他问题:看起来他们没有同步,但最好是他们这样做是为了避免工具出现任何异常行为,或与代码不一致工具生成。

为什么我们需要全局安装和本地安装?

启动新应用程序需要全局安装。 ng new <app-name> 命令使用 CLI 的全局安装运行。事实上,如果你尝试在现有 CLI 应用程序的文件夹结构中运行 ng new,你会得到这个可爱的错误:

您不能在 Angular CLI 项目中使用 new 命令。

可以从全局安装运行的其他命令有 ng helpng get/set--global 选项、ng versionng docng completion

在构建应用程序后使用 CLI 的本地安装。这样,当新版本的 CLI 可用时,您可以更新全局安装,而不会影响本地安装。这有利于项目的稳定性。大多数ng 命令只对本地版本有意义,例如lintbuildserve 等。

根据 CLI GitHub readme,要更新 CLI,您必须更新全局和本地包。但是,到目前为止,我已经使用了全局和本地版本不同的 CLI,没有任何问题。如果我遇到与全局和本地 CLI 版本不同步相关的错误,我会在此处发布。

【讨论】:

  • 没有办法代替更新 cli,例如,我想用我现有的 cli 版本运行安装模块。或者执行命令时没有办法强制使用本地cli而不是全局cli??
  • 在 CLI 项目目录中运行命令时,默认使用 CLI 的本地版本。它在警告中说了很多。
  • 但我不知道为什么这个解决方案不适合我。如果我在 package.json 中提到我的 angular-cli ="^1.0.6" 的值怎么办。那工作,但仍然不了解发生了什么?
  • npm 卸载 -g @angular/cli,npm 缓存清除 --force,npm install @angular/cli
  • @Doug 没错。为具有较低版本 CLI 的项目运行这些命令时,您会收到警告,但您可以忽略它。所有警告都是版本不同,将使用本地 CLI。
【解决方案2】:

这就是我解决问题的方法。

复制并运行这些命令

ng --version
npm install --save-dev @angular/cli@latest
ng --version

【讨论】:

  • 我会添加步骤 1.5(如果你愿意的话)是:rm node_modules/.bin/ng。完美运行。
  • 我们如何将它安装到特定版本?我的全球版本是 6.2.9,而我的本地版本是 1.7.5。我试过 npx @angular/cli@6 update @angular/cli@6 命令但没有运气
  • 执行此操作后,我的 ng 服务不起作用,命令不执行,甚至不给我异常
【解决方案3】:

这对我有用: 它会将本地版本更新到最新版本

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

验证版本

  ng --version

【讨论】:

  • 我把它转换成一个老式的 Windoze 批处理命令: CALL npm uninstall --save-dev @angular/cli CALL npm install --save-dev @angular/cli@latest CALL npm install CALL ng --version
  • 你的步骤。尝试ng serve --open 并得到“此版本的 CLI 仅与 Angular 5.0.0 或更高版本兼容。请访问下面的链接以查找有关如何更新 Angular 的说明。angular-update-guide.firebaseapp.com
【解决方案4】:

运行以下命令:npm install --save-dev @angular/cli@latest

运行上述命令后,控制台可能会弹出以下消息

Angular CLI 配置格式已更改,您的 现有配置可以通过运行自动更新 以下命令:ng update @angular/cli

【讨论】:

    【解决方案5】:
    npm uninstall --save-dev angular-cli
    npm install --save-dev @angular/cli@latest
    

    您现有的配置可以通过运行以下命令自动更新:

    ng update @angular/cli
    

    或:

    npm install
    

    【讨论】:

      【解决方案6】:

      首先通过运行找出全局的angular-cli版本

      ng --version
      

      上面的代码会显示全局和本地 angular-cli 版本是什么版本。

      如果您希望全局和本地角度 cli 相同,您可以这样做

      npm install --save-dev @angular/cli@1.7.4
      

      其中 1.7.4 是您的全局 angular-cli 版本

      如果你运行ng serve --open,你的代码应该会运行。

      【讨论】:

        【解决方案7】:

        我的英语不太好

        但如果我理解这个问题,是不是在项目中本地的 CLI 版本比全局版本旧?

        您想使用这个全局新版本而不是本地旧版本吗?

        如果是这样,一个很简单的方法就足够了,在项目目录npm link @angular/cli中运行

        更多主题在页面上:https://docs.npmjs.com/cli/link

        【讨论】:

          【解决方案8】:
          npm uninstall -g @angular/cli
          npm cache verify
          npm install -g @angular/cli@latest
          

          然后在你的本地项目包中:

          rm -rf node_modules dist 
          npm install --save-dev @angular/cli@latest
          npm i 
          ng update @angular/cli 
          ng update @angular/core
          npm install --save-dev @angular-devkit/build-angular
          

          低于错误 错误:JSON 输入意外结束 JSON 输入意外结束 以上步骤来自这篇帖子Can't update angular to version 6

          【讨论】:

          • npm install --save-dev @angular-devkit/build-angular - 确实帮助 ng update @angular/cli -> 确实创建了 angular.json 和其他更新。
          【解决方案9】:

          就我而言,我只是在项目中使用了这个命令:

          ng update @angular/cli
          

          【讨论】:

            【解决方案10】:

            npm install --save-dev @angular-devkit/build-angular - 确实帮助 ng update @angular/cli -> 确实创建了 angular.json 和其他更新。

            正在收集已安装的依赖项... 找到 58 个依赖项。

             ** Executing migrations for package '@angular/cli' **
                        Updating karma configuration
                        Updating configuration
                        Removing old config file (.angular-cli.json)
                        Writing config file (angular.json)
                        Some configuration options have been changed, please make sure to update any  npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.
            

            【讨论】:

              【解决方案11】:

              你只需要更新 AngularCli

              npm install --save-dev @angular/cli@latest
              

              【讨论】:

                【解决方案12】:

                更新工作区的 Angular CLI(本地)

                npm install --save -dev @angular/cli@latest
                

                注意:如果安装正确,请确保使用带有“-g”的命令安装全局版本。

                npm install -g @angular/cli@latest
                

                运行更新命令以获取需要升级的所有依赖项的列表

                ng update
                

                接下来为每个单独的 Angular 核心包运行如下更新命令

                ng update @angular/cli @angular/core
                

                但是,我必须另外添加“--force”和“--allow-dirty”标志命令来修复所有其他未决问题。

                ng update @angular/cli @angular/core --allow-dirty --force
                

                【讨论】:

                  【解决方案13】:

                  这应该可以解决问题:

                  ng update @angular/cli @angular/core
                  

                  【讨论】:

                    【解决方案14】:

                    做这些事

                    npm install --save-dev @angular/cli@latest
                    npm audit fix
                    npm audit fix --force
                    

                    【讨论】:

                    • 因为这个问题已经有将近 3 年的历史了,并且有 14 个现有答案,如果您解释了为什么您的答案没有被所有现有答案涵盖的价值,那么您的答案会更有价值。
                    【解决方案15】:

                    解决此全局和本地 Angular CLI 版本问题的两种方法。
                    1. 为两种环境保留一个特定的 angular-cli 版本。
                    2. 转到两种环境的最新 angular-cli 版本。

                    1.具体的angular-cli版本

                    首先,找出要在全局和本地环境中保留的 Angular 版本。

                    ng --version
                    

                    例如:这里我们保留本地 Angular CLI 版本 8.3.27

                    所以,我们也必须在 8.3.27 上更改全局版本。 使用cmd>

                    npm install --save-dev @angular/cli@8.3.27 -g
                    

                    这里,'-g' 标志用于设置全局 angular-cli 版本。

                    2。转到两个 CLI 环境的最新 Angular 版本。

                    npm install --save-dev @angular/cli@latest -g  
                    npm install --save-dev @angular/cli@latest 
                    

                    【讨论】:

                      【解决方案16】:

                      还有另一种方法可以避免全局安装创建新应用程序。 就我而言,我使用的是 Angular 9,但客户需要 Angular 8。

                      # create an empty directories
                      mkdir angular-8-cli
                      mkdir my-angular-8-project
                      
                      # init empty npm project
                      cd angular-8-cli
                      npm init -y
                      
                      # install local angular 8 cli
                      npm i @angular/cli@8
                      
                      # go to your angular 8 project
                      cd ../my-angular-8-project
                      
                      # use previously installed angular 8 cli to create a new angular 8 project
                      ../angular-8-cli/node_modules/.bin/ng new my-angular-8-project --directory=.
                      

                      【讨论】:

                        【解决方案17】:

                        这就是我修复它的方法。在Visual Studio Code的终端,先清理缓存

                        npm cache clean --force
                        

                        然后更新cli

                        ng update @angular/cli
                        

                        如果在此之后缺少任何模块,请使用以下命令

                        npm install
                        

                        【讨论】:

                          【解决方案18】:

                          如果您升级了 Angular 版本,则需要更改版本

                          @angular-devkit/build-angular
                          

                          在你的

                          package.json
                          

                          从旧版本升级到新的 Angular 构建版本。

                          我已经升级到 Angular 10,所以我需要去 https://www.npmjs.com/package/@angular-devkit/build-angular 并根据 Angular 10 检查哪个是我的版本。

                          在我的情况下,我发现版本需要是0.1001.7,所以我在我的package.json中将我的旧版本更改为这个版本并运行

                          npm --save install
                          

                          这就够了。

                          【讨论】:

                            【解决方案19】:

                            这是因为全局和局部角度版本不同造成的。要更新全局 Angular 版本,首先需要在命令提示符或 vs code 终端中运行以下命令

                            npm install --save-dev @angular/cli@latest
                            

                            之后如果发现任何漏洞,请运行以下命令修复它们

                            npm audit fix
                            

                            【讨论】:

                              【解决方案20】:

                              使用 --module 参数指定模块。例如,如果主模块是 app.module.ts,则运行:

                              ng g c new-component --module app
                              

                              或者如果你在其他目录中,那么

                              ng g c component-name --module ../
                              

                              【讨论】:

                                【解决方案21】:

                                如果您只想关闭此警告,请运行命令

                                ng config -g cli.warnings.versionMismatch false
                                

                                这很有用,因为有时您希望拥有不同的本地和全球版本。例如,您的全局版本可能拥有最新的 Angular,因为您将在新项目中使用它,但必须在旧 Angular 版本中运行旧项目。

                                【讨论】:

                                  【解决方案22】:

                                  // 安装 npm 检查更新

                                  npm i -g npm -check-updates
                                  

                                  // 运行 npm-check-updates

                                  npm -u
                                  

                                  // 然后您应该获得所有要更新到最新版本的软件包的列表

                                  //根据提示安装更新的包

                                  npm install
                                  

                                  【讨论】:

                                    猜你喜欢
                                    • 2018-06-27
                                    • 2019-01-14
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2022-12-08
                                    • 2018-11-22
                                    • 2017-07-06
                                    • 1970-01-01
                                    • 2020-04-25
                                    相关资源
                                    最近更新 更多