【问题标题】:How to upgrade Angular CLI to the latest version如何将 Angular CLI 升级到最新版本
【发布时间】:2017-10-11 10:25:36
【问题描述】:

使用ng --version 我得到了:

@angular/cli: 1.0.0

这不是可用的最新版本。

由于我的系统上全局安装了 Angular CLI,为了升级它,我尝试了:

npm update angular-cli -g

但它不起作用,因为它停留在 1.0.0 版本。

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

    在阅读了GitHub存储库上报告的一些问题后,我找到了解决方案。

    为了更新系统中全局安装的 angular-cli 包,你需要运行:

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

    根据您的系统,您可能需要在上述命令前加上sudo

    此外,您很可能还想更新您的本地项目版本,因为在您的项目目录中,它的选择优先级高于全局版本:

    rm -rf node_modules
    npm uninstall --save-dev @angular/cli
    npm install --save-dev @angular/cli@latest
    npm install
    

    感谢 grizzm0GitHub 上指出这一点。

    更新 CLI 后,您可能也想update your Angular version

    注意:如果您要从旧版本更新到 Angular CLI 6+,您可能需要阅读 this

    编辑:另外,如果您还在使用 1.x 版本的 cli,您需要将您的 angular-cli.json 转换为 angular.json,您可以使用以下命令进行操作(查看this了解更多详情):

    ng update @angular/cli --from=1.7.4 --migrate-only
    

    【讨论】:

    • 迂腐警告:您可以在 GitHub 上的“发布”选项卡中找到有关版本之间更改的更多详细信息。链接:github.com/angular/angular-cli/releases
    • 2017 年更新 (npm@5):如果您真的需要清理缓存:“npm cache clean --force”
    • 为什么要卸载 angular-cli 而不是整个 @angular/cli?
    • 运行命令 npm cache clean 会抛出错误 '截至 npm@5,npm 缓存从损坏问题中自我修复,并且从缓存中提取的数据保证有效。如果您想确保一切一致,请改用“npm cache verify”。 "如果要强制,可以加--force
    • 奇怪,从 A6 更新到 A7,在全局安装 @latest 版本时,我最终得到了相同的版本(6.2.4)。在 Mac 上,NPM 8.9.4。做了一个npm uninstall -g @angular/cli,它在全球范围内删除了它。但是再次安装后,我得到了相同版本的6。
    【解决方案2】:

    初次使用者:

    npm install -g @angular/cli
    

    更新/升级:

    npm install -g @angular/cli@latest
    

    检查:

    ng --version
    

    documentation

    【讨论】:

    • 如果更新/升级后看不到新版本,请尝试关闭并重新打开终端并再次运行ng --version
    • 谢谢。 @latest 2021 年还需要升级吗?如果我已经在全局范围内安装了旧版本的 Angular CLI 并且不包含 @latest 标签会怎样?
    • 是的,你也可以在 2021 年或 2022 年运行 "npx @angular/cli@13 update @angular/core@13 @angular/cli@13" 这应该会带你到版本 13 Angular 现在使用 TypeScript 4.4 并且是 13 版。update.angular.io/?l=3&v=12.0-13.0
    【解决方案3】:

    ng6+ -> 7.0

    更新 RxJS(取决于 RxJS 6.3)

    npm install -g rxjs-tslint
    rxjs-5-to-6-migrate -p src/tsconfig.app.json
    

    删除rxjs-compat

    然后更新核心包和cli:

    ng update @angular/cli @angular/core
    

    (可选:将 Node.js 更新到 NG7 支持的版本 10)

    ng6+ (Cli 6.0+):具有简化命令功能

    首先,更新你的 Cli

    npm install -g @angular/cli
    npm install @angular/cli
    ng update @angular/cli
    

    然后,更新你的核心包

    ng update @angular/core
    

    如果你使用 RxJS,运行

    ng update rxjs
    

    它将 RxJS 更新到版本 6 并在后台安装 rxjs-compat 包。

    如果您遇到构建错误,请尝试手动安装:

    npm i rxjs-compat
    npm i @angular-devkit/build-angular
    

    最后,检查你的版本

    ng v
    

    关于生产构建的注意事项:

    ng6 在polyfills.ts 中不再使用intl

    //remove them to avoid errors
    import 'intl';
    import 'intl/locale-data/jsonp/en';
    

    ng5+(Cli 1.5+)

    npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next typescript@2.4.2 rxjs@'^5.5.2'
    npm install typescript@2.4.2 --save-exact
    

    注意:

    1. 编写时支持的 Cli 1.6 的 Typescript 版本最高为 2.5.3。
    2. 使用 @next 将包更新为 beta(如果可用)。使用 @latest 获取最新的非测试版。

    更新全局包和本地包后,清除缓存以避免错误:

    npm cache verify (recommended)
    npm cache clean (for older npm versions)
    

    以下是官方参考资料:

    1. 更新Cli
    2. 更新核心包core package

    【讨论】:

    【解决方案4】:

    以下方法对我有用:

    npm uninstall -g @angular/cli
    

    然后

    npm cache verify
    

    然后

    npm install -g @angular/cli
    

    我在 Windows 10 上工作,有时我也必须使用:npm cache clean --force。安装过程中如果没有问题就不需要做。

    【讨论】:

    【解决方案5】:

    强大的命令安装和替换最后一个包。

    我遇到了类似的问题。我修好了。

     npm install -g @angular/cli@latest
    

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

    【讨论】:

    • 这适用于本地 Angular CLI,请查看我的回答以升级全局
    • 升级了我的全局cli
    【解决方案6】:

    这个命令可以正常工作:

    npm upgrade -g @angular/cli
    

    【讨论】:

    • 这似乎将 CLI 升级到最新的次要版本。
    【解决方案7】:

    如果您在管理全局 CLI 版本时遇到任何困难,最好使用 NVM:MACWindows

    要更新 Angular 项目中的本地 CLI,请按以下步骤操作:

    CLI v6 开始,您只需运行ng update 即可将您的依赖项自动更新到新版本。

    ng update @angular/cli
    

    使用ng update 有时您可能想要添加--force 标志。

    你也可以通过--all标志同时升级所有的包。

    ng update --all --force
    

    如果您只想迁移 CLI,只需运行以下命令:

    ng update @angular/cli --migrateOnly
    

    您还可以传递标志--from=from-从中迁移的版本,例如--from=1.7.4。此标志仅在更新单个包时可用,并且仅在迁移时可用。

    更新完成后,确保您获得的打字稿版本 您当前的角度版本支持安装, 否则您可能需要降级打字稿版本。还要记住,通常最新版本的 Angular 不支持最新版本的打字稿。

    结帐Angular CLI / Angular / NodeJS / Typescript兼容版本here

    还可以查看本指南 Updating your Angular projectsupdate.angular.io


    旧答案:
    您需要做的就是与angular-cli-diff 进行比较并在您当前的项目中应用更改。

    步骤如下:

    1. 假设您从 1.4 开始。到 1.5 然后你做https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
    2. 点击File changed标签
    3. 将更改应用到您当前的项目。
    4. npm install / yarn
    5. 测试所有npm scripts更多细节在这里:https://stackoverflow.com/a/45431592/415078

    【讨论】:

      【解决方案8】:

      除了@ShinDarth answer

      我照他说的做了,但是我的包没有更新 angular 版本,我知道这篇文章是关于angular-cli,但我认为这也有帮助。

      • 所以在按照上面@ShinDarth 所说的进行操作后,要修复我的角度版本,我必须使用-ng new projectname 创建一个新项目,该项目会生成一个包。
      • 复制新包,然后将新包粘贴到所有需要更新的项目包上(记得添加您拥有的依赖项并在第一行更改名称),或者您可以手动更改版本而无需复制和粘贴。李>
      • 然后运行-npm install

      现在我的ng serve 又开始工作了,也许有更好的方法来做这一切,如果有人知道,请分享,因为这对所有需要更新的项目来说都很痛苦。

      【讨论】:

      • 看起来更像是对我的答案的补充而不是答案,所以也许您可以将其作为评论移到我的答案下方?
      • sry,你是对的,但我需要 50 声望才能对你的回答发表评论。
      【解决方案9】:

      要将 Angular CLI 更新到新版本,您必须同时更新全局包和项目的本地包。

      全局包:

      npm uninstall -g @angular/cli
      npm cache clean
      # if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
      npm install -g @angular/cli@latest
      

      本地项目包:

      rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
      npm install --save-dev @angular/cli@latest
      npm install
      

      来源:Github

      【讨论】:

        【解决方案10】:

        就我而言,我已经使用 npm install --save-dev angular-cli 在本地安装了 angular-cli。
        所以,当我使用命令npm install -g @angular/cli 时,它会产生错误提示

        您的全局 Angular CLI 版本 (1.7.3) 高于本地版本 (1.4.9)

        请注意 angular-cli、@angular/cli 和 @angular/cli@latest 是两个不同的 cli。
        解决这个问题的方法是卸载所有 cli,然后使用

        安装最新的 angular cli
        npm install -g @angular/cli@latest
        

        【讨论】:

          猜你喜欢
          • 2016-08-26
          • 1970-01-01
          • 2016-08-04
          • 2013-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多