Angular 6 "Workspace needs to be loaded before it is used." 尝试生成新组件时

Angular 6 "Workspace needs to be loaded before it is used." when trying to generate a new Component

当我使用 angular dotnet new 命令创建 asp.net 核心项目时,没有向项目添加 angular.json 文件 (angular 6),因此我们没有能够使用 angular cli。如果我手动添加 angular.json 文件,项目会在下面给出异常!?

Workspace needs to be loaded before it is used. Error: Workspace needs to be loaded before it is used. at Workspace._assertLoaded (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:59:19) at Workspace.getProjectByPath (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:103:14) at Object.getPackageManager (D:\NetAngular\node_modules\@angular\cli\utilities\config.js:97:35) at UpdateCommand.runSchematic (D:\NetAngular\node_modules\@angular\cli\models\schematic-command.js:74:38) at UpdateCommand.<anonymous> (D:\NetAngular\node_modules\@angular\cli\commands\update.js:70:25) at Generator.next (<anonymous>) at D:\NetAngular\node_modules\@angular\cli\commands\update.js:7:71 at new Promise (<anonymous>) at __awaiter (D:\NetAngular\node_modules\@angular\cli\commands\update.js:3:12) at UpdateCommand.run (D:\NetAngular\node_modules\@angular\cli\commands\update.js:69:16)

尤里卡......

dotnet new angular 命令不会在应用程序的根目录上创建 angular.json 文件。在某些网站上,他们说在使用

之后
npm install --save--dev @angular/cli@latest

命令使用

npm update @angular/cli

这会将您的 angular-cli.json 文件迁移到 angular.json 文件!!!但是这里没有 angular-cli.json 文件,也没有 angular.json.

我通过创建自己的 angular.json 文件解决了这个问题(您可以用您的项目名称更改 vega)

 {
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "vega": {
      "root": "",
      "sourceRoot": "ClientApp",
      "projectType": "application",
      "prefix": "app",
      "schematics": {},
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "ClientApp/dist/vega"
          },
          "configurations": {
            "production": {
              "fileReplacements": [{
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.prod.ts"
              }],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true
            }
          }
        }
      }
    }
  }
}

之后我可以使用 angular cli 命令并创建组件和服务。

Code to be Happy

我遇到了同样的错误,是的 angular.json 造成了问题。 当您手动添加外部 css 路径时,可能会发生此错误。我在引用 bootstrap css.

时漏掉了逗号

在样式数组中添加自定义 CSS 时,我漏掉了逗号 (,)

错误文件:

如果您看到下面的代码
后缺少逗号 “../node_modules/bootstrap/dist/bootstrap.min.css”.

"styles": [
          "../node_modules/bootstrap/dist/bootstrap.min.css"
          "src/styles.css"

        ]

解决方法:加逗号

"styles": [
          "../node_modules/bootstrap/dist/bootstrap.min.css",
          "src/styles.css"

        ]

已确认您对 angular.json 进行了一些更改。如果您的 angular.json 文件中存在语法问题,则会发生此错误。我会说这是意外行为,应该改为说文件中存在语法问题。

Issue

buildOptimizer:true 后添加逗号后,它工作正常。

"configurations": {
        "production": {
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true //I missed to put comma here...
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ]
        }
      }

同样的错误。试过卸载,重装,升级,还是报这个错误信息。

删除空的 ~/.angular-config.json 文件后,一切正常。

我确实更改了我的 angular.json 文件,但没有发现任何错误。在仔细检查逗号和我用编码 (UTF-8) 保存的所有内容后,然后格式化文档(右键单击并格式化文档),删除了 10 条冗余行。之后我可以 运行 angular cli 更新,以及命令。

我遇到了类似的错误:

“发生未处理的异常:无法加载工作区配置文件:///Projects///project/angular。 json 架构验证失败,出现以下错误: 数据路径“”不应具有附加属性(脚本)。 有关详细信息,请参阅“/private/var/folders/f8/cq9wj86n3gbfj8h64f8jlx2m0000gn/T/ng-5TCBsc/angular-errors.log”。“

这是因为我之前在 angular.json 中添加了额外的 'scripts' 键。删除它并且它有效!

我有同样的错误,这个错误可能发生在:

  1. 它可能来自 @angular/cli 版本。
  2. angular.jsontsconfig.json.

  3. 中的行尾缺少 comma 字符
  4. unicode angular.jsontsconfig.json 文件(将是 UTF-8)。

  5. 会在 angular.jsontsconfig.json 处存在 comment 行。 (就我而言,tsconfig.json 处有评论行)。
{

  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    //"outDir": "./dist/out-tsc", // comment line caused the error. I removed this line
    "outDir": "../content/ManagmentJob",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    ...
}