【问题标题】:Angular 6 Migration -.angular-cli.json to angular.jsonAngular 6 迁移 -.angular-cli.json 到 angular.json
【发布时间】:2018-10-18 08:41:05
【问题描述】:

我已经将我的项目升级到 Angular 6,除了 .angular-cli.json 文件的转换之外,一切都很好。从我遵循的指南中,据说这会自动转换它。

npm install -g @angular/cli

npm install @angular/cli

ng 更新@angular/cli

但是,情况并非如此,因为我仍然拥有旧的.angular-cli.json

有没有办法自动/手动完成?

【问题讨论】:

  • 您需要手动重命名
  • 你关注this guide了吗?
  • 不要重命名文件。当您按照指南进行操作时,它会被删除并重新创建。如果您重命名它,然后按照指南进行操作,它将无法正常工作。
  • 下面的答案我没有运气;对我来说,同时指定 --from--to 就可以了。诚然,我在迁移过程中更新了许多软件包,很多事情都可能出错了。

标签: angular


【解决方案1】:

如果您使用的是 v6.x.x 或更高版本的 angular cli 命令行工具,您可以使用以下命令将现有的 angular-cli.json 文件自动更新为 angular.json 文件。

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

在上面的命令中,1.7.4 是你之前使用的 cli 版本。 --migrate-only 标志确保它只会执行迁移但不会更新已安装的版本。因为https://github.com/angular/angular-update-guide/issues/64,所以使用--to 而不是@angular/cli@6

阅读更多:angular/cli-github

【讨论】:

  • 嘿,我尝试了多种选择,但您的解决方案有效。我的 angular-cli.json 被转换为 angular.json。但是当我启动我的应用程序时出现另一个错误:ng serve 错误:src/app/workflows/workflow-list/workflow-list.component.ts(441,4) 中的错误:错误 TS1128:预期声明或声明。跨度>
  • 最后这对我有用!我已经尝试了很多解决方案,包括这里的所有其他解决方案以及官方的角度更新指南,但是每当我运行 ng update @angular/cli 时,它从未将 angular-cli.json 更新为 angular.json。最后,它奏效了!非常感谢!
  • 我试过上面的命令。不知道为什么它不适合我。还有其他我可以尝试的命令吗?
【解决方案2】:

我试图从 5.2 -> 6.1 更新,并遇到了一个问题,在运行 npm install @angular/cli@6 后跟 ng update @angular/cli@6,(如 https://update.angular.io/#5.2:6.1 所述)我的 package.json 正在更新,但没有一个.angular-cli.jsontsconfig.json 等其他文件是,即使我没有收到任何错误。我尝试多次执行更新命令,但没有效果。

我最终运行了以下 3 个对我有用的命令:

npm install @angular/cli@6
ng update @angular/cli
ng update @angular/core@6

唯一真正的变化是第二个命令。该文档说要运行ng update @angular/cli@6,但这不会更新任何配置文件。

【讨论】:

    【解决方案3】:

    在我可以运行命令更新 cli 之前,我必须实际提交所有更改或存储它们,如此屏幕截图所示。

    我做了这些命令:

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

    并提交这两者之间的更改。

    【讨论】:

      【解决方案4】:

      尝试运行两次“ng update @angular/cli” 它会将 angular-cli.json 更新为 angular.json

      更新:

      如果遇到这样的错误:

      错误:指定的命令更新无效,可用选项见 ng-帮助。

      那么你需要运行如下2条命令

      1. npm install --save-dev @angular/cli@latest。
      2. ng 更新@angular/cli

      这将自动创建 angular.json,删除 .angular-cli.json 并更新 karma.conf.js、src/tsconfig.spec.json、package.json 和 tslint.json

      【讨论】:

        【解决方案5】:

        在以下情况下:
        找不到本地工作区文件 ('angular.json')。

        serve 命令需要在 Angular 项目中运行,但找不到项目定义。

        升级/降级到所需版本(例如,我尝试了 Angular 6)

        [sudo] npm install -g -f @angular/cli@6.1.4
        

        更新本地项目

        ng update @angular/cli@6.1.4
        

        你很高兴 :)

        ng serve
        

        【讨论】:

          【解决方案6】:

          请按以下步骤操作:

          1) 全局和本地更新您的 Angular CLI(假设最新版本为 7)

          2) 使用旧项目并运行以下命令

          • npm install @angular/cli
          • ng 更新@angular/cli

          运行此程序后,您已将所有 Angular 包更新到最新版本。

          3)添加这个包,因为它仍然丢失

          npm install @angular-devkit/core --save -dev

          4) 使用 ng serve(最新版本)创建一个全新的项目

          5) 新建一个名为 angular.json 的空文件,并将新项目中 angular.json 的内容复制到其中。

          6) 在 angular.json 中相应地更新项目名称

          7) 运行 npm install

          8) 运行服务

          9) 您现在可以使用最新版本的 angular。

          我按照上述步骤从 angular2 迁移到 angular7。

          【讨论】:

          • 如果您在运行 ng serve 时遇到错误,请检查错误是否很可能是 angular.json 中的条目,并相应地更新它们。对于 ex - 项目名称、文件路径等。
          【解决方案7】:

          为了将版本从 5.2 升级到 6.0 ,我遵循了以下步骤。

          • 安装节点 8 或更高版本。
          • yarn 全局添加 @angular/cli。
          • 纱线添加@angular/cli。
          • ng 更新@angular/cli。
          • ng 更新@angular/core。

            注意:如果在执行ng update @angular/core命令后出现invalid range问题,那么按照下面的方法,替换主版本 em> 在 package.json 中,它会自动替换未成年人。 资源: Want to upgrade project from Angular v5 to Angular v6

              - npm uninstall -g angular-cli
              - npm cache clean or npm cache verify
              - npm install -g @angular/cli@next
              - then, replace lower versions to higher versions in package.json 
                file.
              - delete node modules folder.
              - run npm/yarn install.
            

          npm install 之后,如果您收到缺少 src/styles 路径的错误,则从 ["src/styles", "src/fonts ", "src/images", "src/assets", "src/favicon.ico"] 到 ["assets","favicon.ico"]。

          • yarn 全局添加 rxjs-tslint(可能需要)。
          • rxjs-5-to-6-migrate -p src/tsconfig.app.json(可能需要)。
          • yarn install @angular/material@6.0.0(更新材料包)。

          => 请注意您永远不需要手动将 angular.cli.json 重命名为 angular.json

          ** 如果有进一步的疑问,请随时询问。

          【讨论】:

            【解决方案8】:

            其中一个命令很可能有错误。对我来说,我必须先运行npm install -g @angular-devkit/core,然后再运行命令:

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

            npm install @angular/cli 的控制台输出中,您应该看到:

            ================================================================================
            The Angular CLI configuration format has been changed, and your existing configuration can
            be updated automatically by running the following command:
            
              ng update @angular/cli
            ================================================================================
            

            那么你显然应该运行ng update @angular/cli 来完成这个过程。

            有关更多详细信息,请参阅Official Update Guide

            【讨论】:

            • npm install @angular/cli ng update 出现错误,我不得不重新运行它并且它工作了:)
            • @WilliamHampshire :我遵循相同的过程,但是当我运行命令 npm install @angular/cli 时,出现以下错误。 npm WARN @angular-devkit/schematics@0.0.52 需要 @angular-devkit/core@0.0.29 的对等点,但没有安装。您必须自己安装对等依赖项。 npm WARN @schematics/angular@0.1.17 需要 @angular-devkit/core@0.0.29 的对等点,但没有安装。您必须自己安装对等依赖项。npm WARN ajv-keywords@3.2.0 需要一个对等 ajv@^6.0.0 但没有安装。您必须自己安装对等依赖项。
            • 我缺少的是 @angular-devkit/core 包,安装它就可以了。
            猜你喜欢
            • 2019-09-10
            • 2019-03-26
            • 2023-04-08
            • 1970-01-01
            • 1970-01-01
            • 2018-10-18
            • 2019-09-18
            • 2021-08-09
            • 1970-01-01
            相关资源
            最近更新 更多