Skip to content

Commit 8821f7b

Browse files
committed
fixes webpack#64
1 parent dc69f23 commit 8821f7b

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

lib/node/NodeSourcePlugin.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
var path = require("path");
66
var ModuleAliasPlugin = require("enhanced-resolve/lib/ModuleAliasPlugin");
77
var ModuleParserHelpers = require("../ModuleParserHelpers");
8+
var ConstDependency = require("../dependencies/ConstDependency");
89

910
function NodeSourcePlugin() {
1011
}
@@ -26,6 +27,12 @@ NodeSourcePlugin.prototype.apply = function(compiler) {
2627
this.state.current.addVariable("__dirname", JSON.stringify("/"));
2728
return true;
2829
});
30+
compiler.parser.plugin("expression require.main", function(expr) {
31+
var dep = new ConstDependency("require.cache[0]", expr.range);
32+
dep.loc = expr.loc;
33+
this.state.current.addDependency(dep);
34+
return true;
35+
});
2936
compiler.parser.plugin("expression module.exports", ignore);
3037
compiler.parser.plugin("expression module.loaded", ignore);
3138
compiler.parser.plugin("expression module.id", ignore);

test/browsertest/lib/index.web.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,13 @@ describe("main", function() {
123123
delete require.cache[singlarId];
124124
require("./singluar2").should.be.not.equal(singlarObj);
125125
});
126+
127+
it("should have support for require.main", function() {
128+
var value = require.main === module;
129+
var otherModuleValue = require("./testRequireMain");
130+
value.should.be.eql(true);
131+
otherModuleValue.should.be.eql(false);
132+
});
126133
});
127134

128135
describe("context", function() {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require.main === module;

0 commit comments

Comments
 (0)