1

我正在尝试优化我们用作依赖项的ng2-smart-table 包,因为我注意到它对lodash有很大的不必要的依赖,即使它只使用了一小部分 lodash。

但是,在尝试让webpack 捆绑分析器使用他们的angular.json 工作区文件时,我遇到了一些问题。

如果我只是尝试运行 ng build 我得到这个:

❯ ng build --statsJson
Unknown option: '--statsJson'
❯ ng build --stats-json
Unknown option: '--stats-json'

现在,该项目使用angular.json具有以下内容的工作区文件:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "ng2-smart-table": {
      "projectType": "library",
      "root": "projects/ng2-smart-table",
      "sourceRoot": "projects/ng2-smart-table/src",
      "prefix": "lib",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-ng-packagr:build",
          "options": {
            "tsConfig": "projects/ng2-smart-table/tsconfig.lib.json",
            "project": "projects/ng2-smart-table/ng-package.json"
          }
        },
        ...

如果我尝试添加"statsJson": true到选项中,我会收到此错误:

❯ ng build ng2-smart-table
Schema validation failed with the following errors:
  Data path "" should NOT have additional properties(statsJson).

我怀疑它与使用@angular-devkit/build-ng-packagr:build而不是标准的项目有关@angular-devkit/build-angular:browser。但是,由于 packagr 显然不支持分析,我只是不知道如何生成我的分析文件。

4

2 回答 2

-1

转到 angular.json 文件并检查“项目”部分。

"projects": {
    "template": { <--- here
        "projectType": "application",
        "schematics": {},

然后运行ng build template --statsJson

在你的情况下ng build ng2-smart-table --statsJson

于 2020-10-23T09:04:14.503 回答
-1

如果您使用的是工作区,则需要指定项目,例如

ng build myproject --statsJson
于 2019-10-31T18:38:32.720 回答