【问题标题】:Angular 6 build with --stats-json not generating stats.json fileAngular 6 使用 --stats-json 构建不生成 stats.json 文件
【发布时间】:2020-02-29 19:15:42
【问题描述】:

我正在尝试为我的 Angular 6 应用程序生成 stats.json 文件。下面我已经尝试过,但文件根本没有生成。我的系统要求在每个 Angular cli 命令之前都有 "npm run"

  1. 我已经运行了 "npm run ng build --prod --stats-json" 以及 "npm run ng build --prod --stats-json =true"

  2. 我已经运行了 "npm run ng build --stats-json" 以及 "npm run ng build --stats-json=true" >(没有构建命令)。

  3. 通过参考 cli 文档使用了 "npm run ng build --statsJson=true"

但仍然没有生成 stats.json 文件,我想使用 webpack 包分析器读取它。 欢迎在这方面提供任何帮助、建议或更正。

以下是我的 package.json 中的脚本。

“脚本”:{

"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"gulp": "gulp",
"bundle-report": "webpack-bundle-analyzer dist/stats.json",
"stats": "webpack-bundle-analyzer dist/stats.json"

},

【问题讨论】:

    标签: angular npm webpack webpack-bundle-analyzer


    【解决方案1】:

    我发现我的在 /dist。

    这意味着如果您查看 git 是否出现更改,它可能会被忽略。

    【讨论】:

    • 啊这个,你。被低估的答案
    【解决方案2】:

    检查你的 package.json 应该有一个像下面这样的脚本部分,

     "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
    

    如果是则运行

    npm run build -- --statsJson=true
    

    如果您的脚本不同,请发布您 packageJSon 中的脚本部分,将根据该脚本更新答案

    【讨论】:

    • 我已经添加了上面的脚本,请建议。
    • 上面的命令成功了,我终于得到了文件。谢谢拉文
    • 对于生产构建运行这个。 npm run build -- --prod --statsJson=true
    • 为什么stats-json 中没有连字符,如命令ng build --stats-json 所示。这曾经对我有用,但现在不适用于 Angular 9
    • 嗨@Simon_Weaver,我发现输出的json文件名已经用Angular 9重命名为stats-es2015.json
    【解决方案3】:

    当我运行这个命令时:

    npm run build --stats-json,
    

    它生成了一个名为:

    stats-es2015.json
    

    然后,一切正常,当我跑步时:

    npm run webpack-bundle-analyzer dist/PROJECT_NAME/stats-es2015.json
    

    我的环境是:

    "@angular/core": "~9.0.6",
    "webpack-bundle-analyzer": "^4.4.2"
    

    【讨论】:

      【解决方案4】:

      我不知道参数 --statsJson=true 是否在较新版本的 CLI 中不可用,或者是因为我正在使用 NX 构建我的应用程序,但无论如何,您可以通过以下方式使其工作:

      • 打开angular.json文件
      • 在 JSON 结构中转到 projects / [YOUR-APP] / architect / build / configurations / production
      • 在这个 JSON 对象中添加一个新键:"statsJson": true

      启动您的构建不要忘记使用正确的环境启动它。在这种情况下 production 所以我需要在构建应用程序时传递 --prod 参数,否则它将选择另一个没有新标志 "statsJson": true 的配置!

      【讨论】:

        【解决方案5】:

        请查看我的简单解决方法,该解决方法可用于创建清单并通过即 Node.js 应用程序读取其内容。

        https://www.npmjs.com/package/ng-manifest

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-09-27
          • 2013-07-15
          • 2016-11-17
          • 2019-03-04
          • 2014-06-22
          • 2019-04-25
          • 2011-12-10
          • 1970-01-01
          相关资源
          最近更新 更多