Skip to content

Commit 1cc509b

Browse files
authored
Merge pull request #267 from barak007/master
Minimize footprint for browser bundling
2 parents d497994 + 41dc28b commit 1cc509b

File tree

7 files changed

+144
-92
lines changed

7 files changed

+144
-92
lines changed

lib/CachedInputFileSystem.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
"use strict";
77

8+
const nextTick = require("process").nextTick;
9+
810
/** @typedef {import("./Resolver").FileSystem} FileSystem */
911
/** @typedef {import("./Resolver").SyncFileSystem} SyncFileSystem */
1012

@@ -175,8 +177,8 @@ class CacheBackend {
175177
// Check in cache
176178
let cacheEntry = this._data.get(path);
177179
if (cacheEntry !== undefined) {
178-
if (cacheEntry.err) return process.nextTick(callback, cacheEntry.err);
179-
return process.nextTick(callback, null, cacheEntry.result);
180+
if (cacheEntry.err) return nextTick(callback, cacheEntry.err);
181+
return nextTick(callback, null, cacheEntry.result);
180182
}
181183

182184
// Check if there is already the same operation running

lib/Resolver.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class Resolver {
153153
["request", "resolveContext"],
154154
"resolve"
155155
),
156-
/** @type {AsyncSeriesHook<[ResolveRequest, ResolveContext], void>} */
156+
/** @type {AsyncSeriesHook<[ResolveRequest, ResolveContext]>} */
157157
result: new AsyncSeriesHook(["result", "resolveContext"], "result")
158158
};
159159
}

lib/ResolverFactory.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
"use strict";
77

8+
const versions = require("process").versions;
89
const Resolver = require("./Resolver");
910
const { getType, PathType } = require("./util/path");
1011

@@ -112,7 +113,7 @@ const UseFilePlugin = require("./UseFilePlugin");
112113
function processPnpApiOption(option) {
113114
if (
114115
option === undefined &&
115-
/** @type {NodeJS.ProcessVersions & {pnp: string}} */ (process.versions).pnp
116+
/** @type {NodeJS.ProcessVersions & {pnp: string}} */ (versions).pnp
116117
) {
117118
// @ts-ignore
118119
return require("pnpapi"); // eslint-disable-line node/no-missing-require

lib/util/process-browser.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
MIT License http://www.opensource.org/licenses/mit-license.php
3+
Author Tobias Koppers @sokra
4+
*/
5+
6+
"use strict";
7+
8+
exports.process = {
9+
versions: {},
10+
nextTick(fn) {
11+
const args = Array.prototype.slice.call(arguments, 1);
12+
Promise.resolve().then(function () {
13+
fn.apply(null, args);
14+
});
15+
}
16+
};

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@
88
"types.d.ts",
99
"LICENSE"
1010
],
11+
"browser": {
12+
"pnpapi": false,
13+
"process": "./lib/util/process-browser.js"
14+
},
1115
"dependencies": {
1216
"graceful-fs": "^4.2.4",
13-
"tapable": "^2.0.0"
17+
"tapable": "^2.2.0"
1418
},
1519
"license": "MIT",
1620
"devDependencies": {
@@ -28,7 +32,7 @@
2832
"nyc": "^15.1.0",
2933
"prettier": "^2.1.2",
3034
"should": "^13.2.3",
31-
"tooling": "webpack/tooling#v1.8.0",
35+
"tooling": "webpack/tooling#v1.11.0",
3236
"typescript": "^4.0.2"
3337
},
3438
"engines": {

types.d.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,10 @@ declare abstract class Resolver {
216216
null | (BaseResolveRequest & Partial<ParsedIdentifier>)
217217
>,
218218
BaseResolveRequest & Partial<ParsedIdentifier>
219-
],
220-
void
219+
]
221220
>;
222221
noResolve: SyncHook<
223-
[BaseResolveRequest & Partial<ParsedIdentifier>, Error],
224-
void
222+
[BaseResolveRequest & Partial<ParsedIdentifier>, Error]
225223
>;
226224
resolve: AsyncSeriesBailHook<
227225
[BaseResolveRequest & Partial<ParsedIdentifier>, ResolveContext],

0 commit comments

Comments
 (0)