错误:找不到本地工作区文件('angular.json')


189

我已经travis-ci与我的GitHub帐户(https://github.com/pradeep0601/Angular5-Router-App)集成。

当我将@angular/cli版本从1.7.4 更新到6.0.0-rc.3时,构建开始失败并显示以下错误:

Local workspace file ('angular.json') could not be found.
Error: Local workspace file ('angular.json') could not be found.
    at WorkspaceLoader._getProjectWorkspaceFilePath (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/workspace-loader.js:37:19)
    at WorkspaceLoader.loadWorkspace (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/workspace-loader.js:24:21)
    at TestCommand._loadWorkspaceAndArchitect (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:177:32)
    at TestCommand.<anonymous> (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:45:25)
    at Generator.next (<anonymous>)
    at /home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:3:12)
    at TestCommand.initialize (/home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/architect-command.js:44:16)
    at /home/travis/build/pradeep0601/Angular5-Router-App/node_modules/@angular/cli/models/command-runner.js:100:23

package.json代码片段可以更好地了解运行环境:

    "@angular/cli": "6.0.0-rc.3",
    "@angular/compiler-cli": "^5.2.0",
    "@angular/language-service": "^5.2.0",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",

我遇到了同样的问题,这很愚蠢,在从Visual Studio代码使用终端时会发生这种情况,并且在切换到Windows默认cli时可以使用!
吉尔斯·卡加拉玛

Answers:


319

我只是有同样的问题。

它与版本v6.0.0-rc.2,https://github.com/angular/angular-cli/releases有关:

新的配置格式。可以在angular.json中找到新文件(但也可以使用.angular.json)。在CLI 1.7项目上运行ng update将使您转到新配置。

我需要执行:

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

这删除.angular-cli.json并创建了angular.json

如果这导致使用1.7.4的项目,请在本地安装v6:

npm install --save-dev @angular/cli@v6.0.0-rc.4

并再次尝试使用以下方法更新您的项目:

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

4
运行ng update @angular/cli --migrate-only --from=1.7.4结果错误:Collection "@schematics/angular/migrations/migration-collection.json" cannot be resolved.。有什么办法解决吗?
素食主义者

1
我也收到`未知选项:'
Mohammed Barakat

8
确保您的npm和nodejs版本是最新的,否则您可能会失败。ng update @angular/cli就是所需要的。
rtaft

1
@ user1932595我必须升级@schematics/angular到最新版本才能克服该错误。
bygrace

2
在上面的简短说明。直到第二次执行ng update命令,我才删除了.angula-cli.json。
Aggie Jon

78

我收到了同样的错误消息。最终这是一个愚蠢的错误,我没有ng serve在Angular项目所在的目录中运行。运行此命令之前,请确保您位于正确的目录(项目目录)中。


3
哦,这很疯狂:))谢谢,这也为我节省了很多复杂的故障排除工作!有时解决方案真的很简单
msanjay

在犯同样的错误
Faizan Mubasher

我做了同样的事情。您创建了一个目录来服务您的项目,并且在该目录内创建了另一个目录(拍我自己)
Jonathan

即ng new my-app,cd my-app(我之前看过此评论,但认为它表示最高水平)
tony

在犯同样的错误,您救了我的一天,谢谢
Ahmed ElShemy

36

使用最新版本,没有--migrate-only更新版本库。

我做了ng更新

Angular CLI配置格式已更改,可以通过运行以下命令来自动更新现有配置:

ng update @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 (3684 bytes)
UPDATE karma.conf.js (1040 bytes)
UPDATE src/tsconfig.spec.json (322 bytes)
UPDATE package.json (1340 bytes)
UPDATE tslint.json (3140 bytes)

我知道了Incompatible peer dependencies found. See above.
西蒙·巴尔

发生意外错误;包@ angular / flex-layout没有版本为null。
普雷西斯·古吉

20

好吧,我在更新angular cli版本后就遇到了同样的问题。

之前我使用的是1.7.4,现在我将其升级到angular cli 6.0.8

要全局更新Angular Cli:

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

要更新Angular Cli dev:

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

要在npm安装后解决审核问题,请执行以下操作:

npm audit fix

要解决与“ angular.json”有关的问题:

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

17

卸载旧版本的Angular cli,然后全局安装Angular CLI:

将Angular cli全局软件包更新为下一个版本“ @ angular / compiler-cli”:“ ^ 6.0.0”

npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@next

通过运行以下命令来生成新项目和默认应用程序:

ng new my-project
cd my-project
ng serve

7
不要使用cli @ next,请使用cli @ latest,否则您将获得Beta版本。
切换

9

尝试使用以下命令:

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

它将执行以下操作

  • 更新业力配置

  • 更新配置

  • 删除旧的配置文件(.angular-cli.json)

  • 编写配置文件(angular.json)

请注意,以上命令应在您拥有文件的文件夹中运行。angular-cli.json然后将其替换为angular.json


我已经多次运行该命令,而且angular.json文件从不显示。但是,如果我删除angular-cli.json文件,请运行命令,然后将angular-cli.json文件添加回去。我在这里想念什么?
jgritten

8

如果您不知道版本,当前项目已完成,则可以省略--from命令并键入--migrate-only

ng update @ angular / cli --migrate-only


7

如果各种各样的突击队都不会这么做。尝试删除package-lock.json。然后运行npm install。经过大量的突击队突击步枪之后,对我有用。


有什么理由不采用这种方法作为默认方法(删除node_modules文件夹和package-lock.json),而仅运行npm install?
华莱士·霍瑞

4

这个对我有用:

删除资料夹 node_modules

运行命令: npm install

(如果它第一次不起作用,请重复此2或3次,它很有趣,但对我有用。)


4
为什么重复此过程会产生与第一次不同的效果?
雪橇

3

检查要在其中执行命令的文件夹结构,应在结构中应有angular.json文件的位置运行命令“ ng serve”。

当我们运行命令时,默认情况下将生成angular.json文件

npm install -g'@ angular / cli'ng new Project_name然后cd project_folder然后运行ng serve。它对我有用


3

只需在您的控制台中运行即可 ng update @angular/cli。运行该命令(如果使用npm)后,您可能会发现一些漏洞,但是只需在控制台中运行npm audit fix即可修复它们。此命令将扫描项目中的任何漏洞,还将通过安装对这些依赖项的更新来解决兼容性问题。如果不立即这些漏洞要自动修复,可以执行空运行:通过运行 npm audit fix --dry-run -json在控制台中。这将使您以npm audit fix控制台中的json的形式了解命令的作用。


3

我遇到了同样的问题,对我来说可行的是:

  1. 在package.json文件中,将Angular CLI版本更新为我想要的版本:

    "devDependencies": { ...
      "@angular/cli": "^6.0.8",
      ...
    }
    
  2. 删除node_modules文件夹,以在更新依赖项之前清理项目:

    npm install
    
    ng update @angular/cli
    
  3. 尝试再次构建我的项目(最后一次成功尝试)

    ng build --prod
    

2

对我来说,有效的工作是创建一个新的 Angular项目,并只是在该项目中复制了angular.json文件,由于缺少 angular.json文件,该文件出现了问题。


1

对我来说,问题是因为全局@ angular / cli版本和@ angular / compiler-cli不同。查看package.json

...
"@angular/cli": "6.0.0-rc.3",
"@angular/compiler-cli": "^5.2.0",
...

如果不匹配,请更新或降级其中之一。


1

我也面临同样的问题,我只是在命令下面执行。

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

它只是删除angular-cli.json和创建angular.json。您可以在日志中找到它。

一旦开始执行。您将能够在终端中看到以下日志。

        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 (3599 bytes)
        UPDATE karma.conf.js (962 bytes)
        UPDATE src/tsconfig.spec.json (324 bytes)
        UPDATE package.json (1405 bytes)
        UPDATE tsconfig.json (407 bytes)
        UPDATE tslint.json (3026 bytes)


0

对我来说,问题是我在rails项目文件夹中有一个角度项目文件夹,并且我在rails父文件夹中而不是实际的角度文件夹中运行了所有角度更新命令。


0

我在Docker容器中有此错误消息。我解决了添加:

WORKDIR /usr/src

到Dockerfile


0

我遇到了同样的问题,发现我的项目中没有package.json(只有package-lock.json)。然后我

  1. 从源代码管理恢复了package.json
  2. 卸载了全局和本地angular-cli版本(如说明中所述)
  3. 遵循标准升级程序

..一切都很好。花了一段时间来弄清楚,但这对我来说是成功的。


0
~/Desktop $ ng serve

找不到本地工作区文件('angular.json')。

错误:找不到本地工作区文件('angular.json')。

at WorkspaceLoader._getProjectWorkspaceFilePath (/usr/lib/node_modules/@angular/cli/models/workspace-loader.js:37:19)
at WorkspaceLoader.loadWorkspace (/usr/lib/node_modules/@angular/cli/models/workspace-loader.js:24:21)
at ServeCommand._loadWorkspaceAndArchitect (/usr/lib/node_modules/@angular/cli/models/architect-command.js:180:32)
at ServeCommand.<anonymous> (/usr/lib/node_modules/@angular/cli/models/architect-command.js:47:25)
at Generator.next (<anonymous>)
at /usr/lib/node_modules/@angular/cli/models/architect-command.js:7:71
at new Promise (<anonymous>)
at __awaiter (/usr/lib/node_modules/@angular/cli/models/architect-command.js:3:12)
at ServeCommand.initialize (/usr/lib/node_modules/@angular/cli/models/architect-command.js:46:16)
at Object.<anonymous> (/usr/lib/node_modules/@angular/cli/models/command-runner.js:87:23)

这是因为我没有选择Angular项目目录。

应该是这样的:

〜/ Desktop / angularproject $ ng服务


0

我试图将Ionic 4应用设置为pwa运行。当我运行命令时:

ng add @angular/pwa

...收到错误消息。经过一番尝试和错误后,我发现创建项目时启动命令是错误的。我使用的是Ionic 3版本:

ionic start myApp tabs --type=ionic-angular

正确的是:

ionic start myApp tabs --type=angular

类型不带“ ionic-”。这样就解决了错误。


0

只要检查您的目录,就必须在创建项目的同一目录上运行“ ng serve”。

因此,首先输入您的项目目录。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.