Do you want to request a feature or report a bug?
Bug
What is the current behavior?
When running webpack with --profile --json
flags, and the JSON data to be output is rather big, it fails with this error:
process.stdout.write(JSON.stringify(stats.toJson(outputOptions), null, 2) + "\n");
^
RangeError: Invalid string length
at join (native)
at Object.stringify (native)
at compilerCallback (/home/simon/dev/otrl/booking-engine/node_modules/webpack/bin/webpack.js:337:30)
If the current behavior is a bug, please provide the steps to reproduce.
Well, I guess you need a project with enough entry points, and a complicated enough module graph that the size of the profile is quite large. I will try to create a reproducible repo, but actually this is demonstrable with node & no dependencies:
nodejs/node-v0.x-archive#14170
What is the expected behavior?
The JSON should be output to stdout
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
- node v6.10.0
- webpack 2.3.3
- Ubuntu 16.04.1 LTS
I have a large project with many entry points and I also get this error after upgrading to NodeJS 10.15.3.
I was able to modify
webpack-cli
so that it streams out the JSON representation of the Webpack stats object here: cjlarose/webpack-cli@0169c33.In my case, that fork successfully generated a JSON file containing
1447518306
bytes. This is larger than the maximum string size supported by NodeJS 10 on a 64-bit platform (1073741799
bytes)In short, I don’t think that relying on larger string sizes in NodeJS 10 is an appropriate way to dismiss this issue. There are real projects that have
stats
objects that are really large, and many of those projects are exactly the kinds of projects that have a strong need to gather statistics from webpack in order to analyze and optimize bundles.Would a change to write the stats object as JSON using a stream be a welcome change?
fixed, will be available in the next release of webpack-cli