'Tree shaking with "process.browser" in webpack 5
I am in the process of migrating from webpack 4 to 5, and I am facing an error similar to
Module not found: Error: Can't resolve 'fs' in '...'
This is the code that generates the error
if (!process.browser) {
const fs = require('fs');
// ...
}
My understanding was that this code would be eliminated by tree shaking, in the same way as the following would be removed in the context of HMR:
if (import.meta.hot) {
...
}
I found many solutions for the runtime problem, like polyfilling the node modules or disabling them in the alias, but I would rather have webpack remove that code completely. Did this behavior change in webpack 5 or am I missing something?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
