webpack-bundle-analyzer: CLI: Cannot create a string longer than 0x1fffffe8 characters
Issue description
We have front-end heavy application with ~40 entry points and i want to optimize build size
$ rm -rf ./tmp/webpack-stats.json
$ yarn build --progress --profile --json > ./tmp/webpack-stats.json && npx webpack-bundle-analyzer ./tmp/webpack-stats.json
Couldn't read webpack bundle stats from "/Users/tarasturchenko/Projects/work/ZipifyPages/tmp/webpack-stats.json":
Error: Cannot create a string longer than 0x1fffffe8 characters
$ ll ./tmp/webpack-stats.json
-rw-r--r-- 1 tarasturchenko staff 1.0G Feb 4 11:28 ./tmp/webpack-stats.json
Technical info
System: OS: macOS 12.0.1 CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz Memory: 487.04 MB / 16.00 GB Shell: 5.8 - /bin/zsh Binaries: Node: 14.18.1 - ~/.nvm/versions/node/v14.18.1/bin/node Yarn: 1.22.17 - ~/.nvm/versions/node/v14.18.1/bin/yarn npm: 8.1.4 - ~/.nvm/versions/node/v14.18.1/bin/npm npmPackages: compression-webpack-plugin: ^9.0.0 => 9.0.0 image-minimizer-webpack-plugin: ^3.1.2 => 3.1.2 webpack: 5.64.1 => 5.64.1 webpack-cli: 4.9.1 => 4.9.1 webpack-manifest-plugin: ^4.0.2 => 4.0.2 webpack-merge: ^5.8.0 => 5.8.0
Debug info
How do you use this module? As CLI utility or as plugin?
If CLI, what command was used? (e.g. webpack-bundle-analyzer -O path/to/stats.json
)
npx webpack-bundle-analyzer ./tmp/webpack-stats.json
If plugin, what options were provided? (e.g. new BundleAnalyzerPlugin({ analyzerMode: 'disabled', generateStatsFile: true })
)
What other Webpack plugins were used?
- image-minimizer-webpack-plugin
- mini-css-extract-plugin
- compression-webpack-plugin
- webpack-manifest-plugin
- IgnorePlugin & ProvidePlugin
- vue-loader
It would be nice to also attach webpack stats file. It can be generated using these options:
new BundleAnalyzerPlugin({
analyzerMode: 'disabled',
generateStatsFile: true,
// Excludes module sources from stats file so there won't be any sensitive data
statsOptions: { source: false }
})
stats.json
will be created in Webpack bundle output directory.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 1
- Comments: 18 (3 by maintainers)
Hello, I encountered this issue with a large angular app. Using the changes in this PR worked for me https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/423
I knew that. But sometimes I need to compare the dependency graph between branches. It takes time to switch branch, install dependency and build the project. In this case, it’s much more convenient to leverage the existing stat.json
Hi, What is the way around this? the
stats.json
which is created is >512 MB (840 MB), hence it fails with the same error for me as well with the same error.I think the reason is
webpack-stats.json
size is1gb
and we’re using something likereadFileSync
to read it as a string.This should now be fixed in v4.8.0 thanks to #423! 🚀
Feel free to take it for a spin and let us know if the issue wasn’t solved with that PR as expected.
Hello, A bit late to the party, but only now I had the time to test this with our application. I tested this fix and it worked for me to load a 548 MB file.
Thank you for the fix.
The workaround is to use the plugin and not CLI