Skip to content

Commit 8da6f6c

Browse files
committed
don't shim shims and update node-libs
1 parent d2a5464 commit 8da6f6c

File tree

3 files changed

+20
-24
lines changed

3 files changed

+20
-24
lines changed

lib/node/NodeSourcePlugin.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ NodeSourcePlugin.prototype.apply = function(compiler) {
3434
return "require(" + JSON.stringify(moduleJsPath) + ")";
3535
}
3636

37+
function addExpression(parser, name, module, type, suffix) {
38+
suffix = suffix || "";
39+
parser.plugin("expression " + name, function() {
40+
if(this.state.module && this.state.module.resource === getPathToModule(module, type)) return;
41+
return ModuleParserHelpers.addParsedVariable(this, name, buildExpression(this.state.module.context, getPathToModule(module, type)) + suffix);
42+
});
43+
}
44+
3745
compiler.plugin("compilation", function(compilation, params) {
3846
params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
3947

@@ -44,37 +52,27 @@ NodeSourcePlugin.prototype.apply = function(compiler) {
4452
if(parserOptions.node)
4553
localOptions = objectAssign({}, localOptions, parserOptions.node);
4654

47-
if(localOptions.process) {
48-
var processType = localOptions.process;
49-
parser.plugin("expression process", function() {
50-
return ModuleParserHelpers.addParsedVariable(this, "process", buildExpression(this.state.module.context, getPathToModule("process", processType)));
51-
});
52-
}
5355
if(localOptions.global) {
5456
parser.plugin("expression global", function() {
5557
return ModuleParserHelpers.addParsedVariable(this, "global", buildExpression(this.state.module.context, require.resolve("../../buildin/global.js")));
5658
});
5759
}
60+
if(localOptions.process) {
61+
var processType = localOptions.process;
62+
addExpression(parser, "process", "process", processType);
63+
}
5864
if(localOptions.console) {
5965
var consoleType = localOptions.console;
60-
parser.plugin("expression console", function() {
61-
return ModuleParserHelpers.addParsedVariable(this, "console", buildExpression(this.state.module.context, getPathToModule("console", consoleType)));
62-
});
66+
addExpression(parser, "console", "console", consoleType);
6367
}
6468
var bufferType = localOptions.Buffer;
6569
if(bufferType) {
66-
parser.plugin("expression Buffer", function() {
67-
return ModuleParserHelpers.addParsedVariable(this, "Buffer", buildExpression(this.state.module.context, getPathToModule("buffer", bufferType)) + ".Buffer");
68-
});
70+
addExpression(parser, "Buffer", "buffer", bufferType, ".Buffer");
6971
}
7072
if(localOptions.setImmediate) {
7173
var setImmediateType = localOptions.setImmediate;
72-
parser.plugin("expression setImmediate", function() {
73-
return ModuleParserHelpers.addParsedVariable(this, "setImmediate", buildExpression(this.state.module.context, getPathToModule("timers", setImmediateType)) + ".setImmediate");
74-
});
75-
parser.plugin("expression clearImmediate", function() {
76-
return ModuleParserHelpers.addParsedVariable(this, "clearImmediate", buildExpression(this.state.module.context, getPathToModule("timers", setImmediateType)) + ".clearImmediate");
77-
});
74+
addExpression(parser, "setImmediate", "timers", setImmediateType, ".setImmediate");
75+
addExpression(parser, "clearImmediate", "timers", setImmediateType, ".clearImmediate");
7876
}
7977
});
8078
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"loader-utils": "^0.2.16",
1515
"memory-fs": "~0.3.0",
1616
"mkdirp": "~0.5.0",
17-
"node-libs-browser": "^1.0.0",
17+
"node-libs-browser": "^2.0.0",
1818
"object-assign": "^4.0.1",
1919
"source-map": "^0.5.3",
2020
"supports-color": "^3.1.0",

test/configCases/target/web/index.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
require("should");
22

3-
// shimming global window object so the http-module is happy.
4-
// window is assigned without var on purpose.
5-
window = {
6-
XMLHttpRequest: function() {}
7-
};
3+
// shimming global XMLHttpRequest object so the http-module is happy.
4+
global.XMLHttpRequest = function() {};
5+
global.XMLHttpRequest.prototype.open = function() {};
86

97
it("should provide a global Buffer constructor", function() {
108
Buffer.should.be.a.Function;

0 commit comments

Comments
 (0)