mirror of https://github.com/webpack/webpack.git
fix memory leak when using createReadStream
This commit is contained in:
parent
1b00c9986f
commit
005bdbbefd
|
|
@ -435,18 +435,25 @@ class FileMiddleware extends SerializerMiddleware {
|
|||
const file = name
|
||||
? join(this.fs, filename, `../${name}${extension}`)
|
||||
: filename;
|
||||
const stream = this.fs.createReadStream(file, {
|
||||
highWaterMark: 500 * 1024 * 1024 // 500 MB
|
||||
});
|
||||
const buf = [];
|
||||
stream.on("data", data => {
|
||||
buf.push(data);
|
||||
});
|
||||
stream.on("end", () => {
|
||||
resolve(buf);
|
||||
});
|
||||
stream.on("error", err => {
|
||||
reject(err);
|
||||
this.fs.stat(file, (err, stats) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
const stream = this.fs.createReadStream(file, {
|
||||
end: stats.size,
|
||||
highWaterMark: stats.size // 500 MB
|
||||
});
|
||||
const buf = [];
|
||||
stream.on("data", data => {
|
||||
buf.push(data);
|
||||
});
|
||||
stream.on("end", () => {
|
||||
resolve(buf);
|
||||
});
|
||||
stream.on("error", err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
});
|
||||
return deserialize(this, false, readFile);
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ const path = require("path");
|
|||
* @typedef {Object} IntermediateFileSystemExtras
|
||||
* @property {function(string): void} mkdirSync
|
||||
* @property {function(string): import("fs").WriteStream} createWriteStream
|
||||
* @property {function(string, { highWaterMark?: number }): import("fs").ReadStream} createReadStream
|
||||
* @property {function(string, { highWaterMark?: number, end?: number }): import("fs").ReadStream} createReadStream
|
||||
* @property {function(string, string, Callback): void} rename
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -3692,7 +3692,7 @@ declare interface IntermediateFileSystemExtras {
|
|||
createWriteStream: (arg0: string) => WriteStream;
|
||||
createReadStream: (
|
||||
arg0: string,
|
||||
arg1: { highWaterMark?: number }
|
||||
arg1: { highWaterMark?: number; end?: number }
|
||||
) => ReadStream;
|
||||
rename: (
|
||||
arg0: string,
|
||||
|
|
|
|||
Loading…
Reference in New Issue