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

Posted

技术标签:

【中文标题】错误:找不到本地工作区文件(\'angular.json\')【英文标题】:Error: Local workspace file ('angular.json') could not be found错误:找不到本地工作区文件('angular.json') 【发布时间】:2018-09-23 10:26:06 【问题描述】:

我已将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 sn -p 更好地了解运行环境:

    "@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 时工作! 【参考方案1】:

我也遇到了同样的问题。

与版本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

【讨论】:

运行 ng update @angular/cli --migrate-only --from=1.7.4 导致错误:Collection "@schematics/angular/migrations/migration-collection.json" cannot be resolved.。有什么办法解决吗? 我也得到了`未知选项:'--extractCss'` 确保你的 npm 和 nodejs 版本是最新的,否则你可能会失败。 ng update @angular/cli 就足够了。 @user1932595 我必须将@schematics/angular 升级到最新版本才能克服该错误。 上面的简短说明。在第二次运行 ng update 命令之前,我没有删除 .angula-cli.json。【参考方案2】:

卸载旧版本的 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

【讨论】:

不要使用 cli@next,使用 cli@latest 否则您将获得 beta 版本。【参考方案3】:

使用最新版本,没有 --migrate-only 我更新了 repo。

我做了 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。【参考方案4】:

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

【讨论】:

哦,这太疯狂了 :))谢谢,这也为我节省了很多复杂的故障排除!有时解决方案真的很简单 犯了同样的错误 我也做了同样的事情。您创建一个目录来为您的项目提供服务,它会在该目录内创建另一个目录(自己打自己一巴掌) 即ng new my-app, cd my-app (我之前看到了这个评论,但以为它是***的) 犯了同样的错误,你拯救了我的一天,谢谢【参考方案5】:

如果各种更新突击队都不会这样做。尝试删除 package-lock.json。然后运行 ​​npm install。在经历了大量的更新突击队之后为我做了诀窍。

【讨论】:

有什么理由不采用这种方法作为默认方法(删除 node_modules 文件夹和 package-lock.json),只运行 npm install 吗?【参考方案6】:

检查你正在执行命令的文件夹结构,你应该运行命令'ng serve',结构中应该有一个angular.json文件。

运行命令时默认会生成angular.json文件

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

【讨论】:

【参考方案7】:

如果不知道当前项目的版本,可以省略--from命令,输入--migrate-only

ng 更新 @angular/cli --migrate-only

【讨论】:

【参考方案8】:

尝试使用以下命令:

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 文件会被添加回来。我在这里错过了什么?【参考方案9】:

查看此链接以从 Angular 5.2 迁移到 6。 https://update.angular.io/

升级到 8.9 版对我有用。

【讨论】:

【参考方案10】:

它对我有用:

删除文件夹 node_modules

运行命令: npm install

(如果第一次不成功,重复2或3次,这很有趣但对我有用。)

【讨论】:

为什么重复这个过程会产生与第一次不同的效果?【参考方案11】:

嗯,当我更新我的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 开发人员:

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

在 npm install 后修复审计问题:

npm audit fix

解决“angular.json”相关问题:

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

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

我在 docker 容器中收到此错误消息。我解决了它添加:

WORKDIR /usr/src

到 Dockerfile。

【讨论】:

【参考方案14】:

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

【讨论】:

【参考方案15】:

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

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

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

【讨论】:

【参考方案16】:

我遇到了同样的问题,我所做的对我有用的是:

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

    "devDependencies":  ...
      "@angular/cli": "^6.0.8",
      ...
    
    

    删除node_modules文件夹,以便在更新依赖项之前清理项目:

    npm install
    
    ng update @angular/cli
    

    尝试再次构建我的项目(最后一次成功的尝试)

    ng build --prod
    

【讨论】:

【参考方案17】:

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

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)

【讨论】:

【参考方案18】:

对我来说,工作是创建一个 new Angular 项目,然后将 angular.json 文件复制到由于 angular.json 文件是 不见了

【讨论】:

【参考方案19】:

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

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

..一切都很好。花了一段时间才弄明白,但这对我有用。

【讨论】:

【参考方案20】:
~/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 serve

【讨论】:

【参考方案21】:

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

ng add @angular/pwa

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

ionic start myApp tabs --type=ionic-angular

正确的是:

ionic start myApp tabs --type=angular

类型中没有“ionic-”。这解决了错误。

【讨论】:

【参考方案22】:

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

所以,首先进入你的项目目录。

【讨论】:

【参考方案23】:

对于那些只是克隆一个项目并尝试运行它的人,您需要先运行npm install。我完全忘了运行它,只是在安装节点模块之前运行ng serve

【讨论】:

以上是关于错误:找不到本地工作区文件('angular.json')的主要内容,如果未能解决你的问题,请参考以下文章

Angular.js - CORS - ASP.NET - Rest API - 在 Access-Control-Allow-Origin 标头中找不到来源

Angular2 FileSaver.js

node.js/typescript 找不到本地模块

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

发布在本地服务器上找不到 php 文件。

尝试 Yarn 添加一个私有 Github 存储库并得到“找不到二进制 git”错误