Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular 6 build with --stats-json not generating stats.json file

I'm trying to generate the stats.json file for my Angular 6 application. Below things I've already tried, but the file is not getting generated at all. My system requires to have "npm run" before every angular cli command.

  1. I've ran "npm run ng build --prod --stats-json" as well as "npm run ng build --prod --stats-json=true".

  2. I've ran "npm run ng build --stats-json" as well as "npm run ng build --stats-json=true" (without the build command).

  3. Used "npm run ng build --statsJson=true" by taking reference from cli documentation.

But still stats.json file is not being generated, which I want to read using webpack bundle analyzer. Any help, suggestion or correction in this regard is welcome.

Below are the scripts in my package.json.

"scripts": {

"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"

},

like image 841
Jamshed Avatar asked Nov 04 '19 13:11

Jamshed


3 Answers

I found mine was in /dist.

This means if you look to git for changes appearing, it might be ignored.

like image 168
Ben Taliadoros Avatar answered Nov 18 '22 01:11

Ben Taliadoros


Check your package.json there should be a script section like below,

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

if it's then run

npm run build -- --statsJson=true

if your script is different please post the script section from your packageJSon will update answer based on that

like image 44
Ravin Singh D Avatar answered Nov 18 '22 02:11

Ravin Singh D


I don't know if the argument --statsJson=true is not available in newer versions of the CLI or if it's because I'm using NX to build my app but anywway, here's how you can make it work:

  • Open angular.json file
  • In the JSON structure go to projects / [YOUR-APP] / architect / build / configurations / production
  • Add a new key in this JSON object: "statsJson": true

Launch your build and don't forget to launch it with the correct environment. In this case production so I need to pass the --prod argument when building the app otherwise it'll pick another configuration which doesn't have the new flag "statsJson": true!

like image 1
maxime1992 Avatar answered Nov 18 '22 01:11

maxime1992