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

时间:2018-04-13 06:28:11

标签: angular-cli travis-ci package-lock.json

我已将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",

22 个答案:

答案 0 :(得分:302)

我遇到了同样的问题。

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

有关
  

新配置格式。新文件可以在angular.json中找到(但也接受.angular.json)。在CLI 1.7项目上运行更新将使您进入新配置。

我需要执行:

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

答案 1 :(得分:35)

在最近的版本中,没有--migrate-only我更新了回购。

我做了 ng update

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)

答案 2 :(得分:16)

卸载旧版本的Angular cli,并安装Angular CLI global:

将Angular cli全局包更新到下一个版本,&#34; @ angular / compiler-cli&#34;:&#34; ^ 6.0.0&#34;

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

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

ng new my-project
cd my-project
ng serve

答案 3 :(得分:16)

好吧,我更新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

希望这对您有帮助:)

答案 4 :(得分:8)

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

  

ng update @ angular / cli --migrate-only

答案 5 :(得分:8)

尝试使用以下命令:

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

它将执行以下

  • 更新业力配置

  • 更新配置

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

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

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

答案 6 :(得分:7)

如果所有类型的更新突击队都不会这样做。尝试删除 package-lock.json 。然后运行 npm install 。在经历了大量的更新突击队之后,对我来说是不是。

答案 7 :(得分:4)

它对我有用:

删除文件夹 node_modules

运行命令: npm install

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

答案 8 :(得分:3)

检查您执行命令的文件夹结构,您应该运行命令&#39; ng serve&#39;在结构中应该有一个angular.json文件。

运行命令

时,默认会生成

angular.json文件

npm install -g&#39; @ angular / cli&#39; 新的Project_name 然后cd project_folder 然后,运行服务。它对我有用

答案 9 :(得分:3)

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

答案 10 :(得分: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
    

答案 11 :(得分:2)

对我来说,有效的方法是创建一个 new Angular项目,并只是将angular.json文件复制到该项目中,由于该问题,由于angular.json文件为 < em>缺少

答案 12 :(得分:1)

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

  

ng update @ angular / cli-仅迁移--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)

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

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

答案 15 :(得分:0)

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

ng add @angular/pwa

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

ionic start myApp tabs --type=ionic-angular

正确的是:

ionic start myApp tabs --type=angular

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

答案 16 :(得分: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服务

答案 17 :(得分:0)

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

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

..并且一切都很好。花了一段时间才弄清楚,但这对我有用。

答案 18 :(得分:0)

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

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

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

答案 19 :(得分:0)

我在Docker容器内收到此错误消息。我添加了它来解决它:

WORKDIR /usr/src

到Dockerfile。

答案 20 :(得分:0)

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

答案 21 :(得分:0)

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

升级到8.9版对我有用。 enter image description here