从Angular5迁移到Angular6,angular.json不会更新

时间:2018-06-03 15:01:10

标签: json node.js angular angular-cli

我想在this answer

之后从Angular5迁移到Angular6

我尝试执行这三个命令,将 .angular-cli.json 更新为 angular.json

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

不幸的是,仍然没有 angular.json 。如果我尝试运行ng serve,我会收到此错误:

Local workspace file ('angular.json') could not be found.

所以我将 .angular-cli.json 重命名为 angular.json 。但它没有帮助:

  

架构验证失败,并出现以下错误:数据路径“”   不应该有其他属性(项目)。错误:架构   验证失败,出现以下错误:数据路径“”不应该   有其他属性(项目)。       在MergeMapSubscriber._registry.compile.pipe.operators_1.concatMap.validatorResult   [作为项目]   (C:\项目\我的应用内\ node_modules \ @角的devkit \芯\ SRC \工作空间\ workspace.js:173:42)       在MergeMapSubscriber._tryNext(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ operators \ mergeMap.js:122:27)       在MergeMapSubscriber._next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ operators \ mergeMap.js:112:18)       在MergeMapSubscriber.Subscriber.next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ Subscriber.js:103:18)       在MergeMapSubscriber.notifyNext(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ operators \ mergeMap.js:141:26)       在InnerSubscriber._next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ InnerSubscriber.js:30:21)       在InnerSubscriber.Subscriber.next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ Subscriber.js:103:18)       在MapSubscriber._next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ operators \ map.js:92:26)       在MapSubscriber.Subscriber.next(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ Subscriber.js:103:18)       在SwitchMapSubscriber.notifyNext(C:\ projects \ my-app \ node_modules \ rxjs \ internal \ operators \ switchMap.js:122:26)

因此我试图运行ng update @angular/core,但我收到此错误:

  

工作区需要在使用前加载。

我错了什么?

1 个答案:

答案 0 :(得分:5)

您无法手动将文件.angular-cli.json重命名为angular.json。他们有不同的模式,因此你的错误。

删除现有的dir node_modules。确保从项目的根目录运行npm install @angular/cling update @angular/cli。如果没有创建文件angular.json,请在控制台上读取输出 - 它应该会给你一些错误。

如果这没有帮助,只需使用Angular CLI 6生成一个新项目,并将现有项目中的src目录和资产复制到新生成的项目中。

我在博客中介绍了将Angular 5项目升级到Angular 6的经验:https://yakovfain.com/2018/05/16/how-i-migrated-a-dozen-of-projects-to-angular-6