rename generated require to __webpack_require__

fixes #141
fixes RubenVerborgh/N3.js#18
This commit is contained in:
Tobias Koppers 2014-03-03 14:56:17 +01:00
parent fb7958d172
commit 0fea43b4cb
28 changed files with 85 additions and 67 deletions

View File

@ -10,10 +10,10 @@ function APIPlugin() {
module.exports = APIPlugin;
var REPLACEMENTS = {
__webpack_public_path__: "require.p",
__webpack_require__: "require",
__webpack_modules__: "require.modules",
__webpack_chunk_load__: "require.e",
__webpack_public_path__: "__webpack_require__.p",
__webpack_modules__: "__webpack_require__.m",
__webpack_chunk_load__: "__webpack_require__.e",
"require.onError": "__webpack_require__.onError",
};
var REPLACEMENT_TYPES = {
__webpack_public_path__: "string",
@ -22,8 +22,6 @@ var REPLACEMENT_TYPES = {
__webpack_chunk_load__: "function",
};
var IGNORES = [
"call require.valueOf",
"expression require.onError",
];
APIPlugin.prototype.apply = function(compiler) {
Object.keys(REPLACEMENTS).forEach(function(key) {

View File

@ -87,7 +87,7 @@ ContextModule.prototype.source = function(dependencyTemplates, outputOptions, re
var str = [
"var map = ", JSON.stringify(map, null, "\t"), ";\n",
"function webpackContext(req) {\n",
"\treturn require(webpackContextResolve(req));\n",
"\treturn __webpack_require__(webpackContextResolve(req));\n",
"};\n",
"function webpackContextResolve(req) {\n",
"\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n",

View File

@ -19,7 +19,7 @@ FunctionModuleTemplate.prototype.render = function(module, dependencyTemplates,
source.add(" !*** " + req.replace(/\*\//g, "*_/") + " ***!\n");
source.add(" \\****" + req.replace(/./g, "*") + "****/\n");
}
source.add("/***/ function(" + ["module", "exports", "require"].concat(module.arguments || []).join(", ") + ") {\n\n");
source.add("/***/ function(" + ["module", "exports", "__webpack_require__"].concat(module.arguments || []).join(", ") + ") {\n\n");
source.add(new PrefixSource(this.outputOptions.sourcePrefix, module.source(dependencyTemplates, this.outputOptions, this.requestShortener)));
source.add("\n\n/***/ }");
return source;

View File

@ -13,7 +13,7 @@ function MainTemplate(outputOptions) {
module.exports = MainTemplate;
MainTemplate.prototype = Object.create(Template.prototype);
MainTemplate.prototype.requireFn = "require";
MainTemplate.prototype.requireFn = "__webpack_require__";
MainTemplate.prototype.render = function(hash, chunk, moduleTemplate, dependencyTemplates) {
var buf = [];
buf.push(this.asString(this.renderAdditions(hash, chunk, moduleTemplate, dependencyTemplates)));
@ -121,11 +121,11 @@ MainTemplate.prototype.renderRequireExtensions = function(hash, chunk) {
}
buf.push("");
buf.push("// expose the modules object (__webpack_modules__)");
buf.push(this.requireFn + ".modules = modules;");
buf.push(this.requireFn + ".m = modules;");
buf.push("");
buf.push("// expose the module cache");
buf.push(this.requireFn + ".cache = installedModules;");
buf.push(this.requireFn + ".c = installedModules;");
var publicPath = this.outputOptions.publicPath || "";
publicPath = publicPath.replace(Template.REGEXP_HASH, hash);

View File

@ -41,7 +41,7 @@ MultiModule.prototype.source = function(dependencyTemplates, outputOptions, requ
if(dep.module) {
if(idx == this.dependencies.length - 1)
str.push("module.exports = ");
str.push("require(");
str.push("__webpack_require__(");
if(outputOptions.pathinfo)
str.push("/*! "+dep.request+" */");
str.push(""+dep.module.id);

View File

@ -57,7 +57,7 @@ NodeStuffPlugin.prototype.apply = function(compiler) {
return res;
});
compiler.parser.plugin("expression require.main", function(expr) {
var dep = new ConstDependency("require.cache[0]", expr.range);
var dep = new ConstDependency("__webpack_require__.c[0]", expr.range);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;

View File

@ -125,9 +125,9 @@ NormalModule.prototype.source = function(dependencyTemplates, outputOptions, req
function emitFunction() {
if(varNames.length == 0) return;
varStartCode += "/* WEBPACK VAR INJECTION */(function(require, " + varNames.join(", ") + ") {";
varStartCode += "/* WEBPACK VAR INJECTION */(function(" + varNames.join(", ") + ") {";
// exports === this in the topLevelBlock, but exports do compress better...
varEndCode = (topLevelBlock === block ? "}.call(exports, require, " : "}.call(this, require, ") +
varEndCode = (topLevelBlock === block ? "}.call(exports, " : "}.call(this, ") +
varExpressions.map(function(e) {return e.source()}).join(", ") + "))" + varEndCode;
varNames.length = 0;

View File

@ -25,7 +25,7 @@ RequireJsStuffPlugin.prototype.apply = function(compiler) {
return true;
});
compiler.parser.plugin("expression requirejs.onError", function(expr) {
var dep = new ConstDependency(JSON.stringify("require.onError"), expr.range);
var dep = new ConstDependency(JSON.stringify("__webpack_require__.onError"), expr.range);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;

View File

@ -31,7 +31,7 @@ AMDDefineDependency.Template.prototype.apply = function(dep, source, outputOptio
source.insert(0, "var " + localModuleVar + ";");
source.replace(dep.range[0], dep.functionRange[0]-1,
"!(" + localModuleVar + " = (");
source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, require, exports, module)))");
source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, __webpack_require__, exports, module)))");
} else if(dep.arrayRange && dep.functionRange && !dep.objectRange) {
source.insert(0, "var __WEBPACK_AMD_DEFINE_ARRAY__, " + localModuleVar + ";");
source.replace(dep.range[0], dep.arrayRange[0]-1,
@ -42,7 +42,7 @@ AMDDefineDependency.Template.prototype.apply = function(dep, source, outputOptio
source.insert(0, "var __WEBPACK_AMD_DEFINE_FACTORY__, " + localModuleVar + ";");
source.replace(dep.range[0], dep.functionRange[0]-1,
"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (");
source.replace(dep.functionRange[1], dep.range[1]-1, "), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (" + localModuleVar + " = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, require, exports, module)) : " + localModuleVar + " = __WEBPACK_AMD_DEFINE_FACTORY__))");
source.replace(dep.functionRange[1], dep.range[1]-1, "), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (" + localModuleVar + " = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : " + localModuleVar + " = __WEBPACK_AMD_DEFINE_FACTORY__))");
}
} else {
if(dep.objectRange && !dep.functionRange) {
@ -53,7 +53,7 @@ AMDDefineDependency.Template.prototype.apply = function(dep, source, outputOptio
source.insert(0, "var __WEBPACK_AMD_DEFINE_RESULT__;");
source.replace(dep.range[0], dep.functionRange[0]-1,
"!(__WEBPACK_AMD_DEFINE_RESULT__ = (");
source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, require, exports, module)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))");
source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, __webpack_require__, exports, module)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))");
} else if(dep.arrayRange && dep.functionRange && !dep.objectRange) {
source.insert(0, "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;");
source.replace(dep.range[0], dep.arrayRange[0]-1,
@ -64,7 +64,7 @@ AMDDefineDependency.Template.prototype.apply = function(dep, source, outputOptio
source.insert(0, "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;");
source.replace(dep.range[0], dep.functionRange[0]-1,
"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (");
source.replace(dep.functionRange[1], dep.range[1]-1, "), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_RESULT__ = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, require, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : module.exports = __WEBPACK_AMD_DEFINE_FACTORY__))");
source.replace(dep.functionRange[1], dep.range[1]-1, "), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_RESULT__ = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : module.exports = __WEBPACK_AMD_DEFINE_FACTORY__))");
}
}
};

View File

@ -140,7 +140,7 @@ module.exports = AbstractPlugin.create({
if(param.isArray()) {
param.items.forEach(function(param, idx) {
if(param.isString() && ["require", "module", "exports"].indexOf(param.string) >= 0)
identifiers[idx] = param.string;
identifiers[idx] = param.string === "require" ? "__webpack_require__" : param.string;
var result = this.applyPluginsBailResult("call define:amd:item", expr, param);
if(result === undefined) {
this.applyPluginsBailResult("call define:amd:context", expr, param);
@ -151,7 +151,10 @@ module.exports = AbstractPlugin.create({
var deps = [];
param.array.forEach(function(request, idx) {
var dep, localModule;
if(["require", "exports", "module"].indexOf(request) >= 0) {
if(request === "require") {
identifiers[idx] = request;
dep = "__webpack_require__";
} else if(["exports", "module"].indexOf(request) >= 0) {
identifiers[idx] = request;
dep = request;
} else if(localModule = LocalModulesHelpers.getLocalModule(this.state, request)) {
@ -184,7 +187,9 @@ module.exports = AbstractPlugin.create({
return true;
} else if(param.isString()) {
var dep, localModule;
if(["require", "exports", "module"].indexOf(param.string) >= 0) {
if(param.string === "require") {
dep = new ConstDependency("__webpack_require__", param.range);
} else if(["require", "exports", "module"].indexOf(param.string) >= 0) {
dep = new ConstDependency(param.string, param.range);
} else if(localModule = LocalModulesHelpers.getLocalModule(this.state, param.string)) {
dep = new LocalModuleDependency(localModule, param.range);

View File

@ -25,7 +25,7 @@ AMDRequireArrayDependency.Template.prototype.apply = function(dep, source, outpu
var comment = "";
if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
if(dep.module)
return "require(" + comment + dep.module.id + ")";
return "__webpack_require__(" + comment + dep.module.id + ")";
else
return "(function webpackMissingModule() { throw new Error(" + JSON.stringify("Cannot find module \"" + dep.request + "\"") + "); }())";
}

View File

@ -69,7 +69,9 @@ module.exports = AbstractPlugin.create({
var deps = [];
param.array.forEach(function(request) {
var dep, localModule;
if(["require", "exports", "module"].indexOf(request) >= 0) {
if(request === "require") {
dep = "__webpack_require__";
} else if(["exports", "module"].indexOf(request) >= 0) {
dep = request;
} else if(localModule = LocalModulesHelpers.getLocalModule(this.state, request)) {
dep = new LocalModuleDependency(localModule);
@ -101,7 +103,9 @@ module.exports = AbstractPlugin.create({
return true;
} else if(param.isString()) {
var dep, localModule;
if(["require","exports","module"].indexOf(param.string) >= 0) {
if(param.string === "require") {
dep = new ConstDependency("__webpack_require__", param.string);
} else if(["exports", "module"].indexOf(param.string) >= 0) {
dep = new ConstDependency(param.string, param.range);
} else if(localModule = LocalModulesHelpers.getLocalModule(this.state, param.string)) {
dep = new LocalModuleDependency(localModule, param.range);

View File

@ -21,7 +21,7 @@ AMDRequireDependency.Template.prototype.apply = function(dep, source, outputOpti
if(depBlock.arrayRange && !depBlock.functionRange) {
if(typeof chunkId === "number") {
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
"require.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(require) {");
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) {");
source.replace(depBlock.arrayRange[1], depBlock.outerRange[1]-1, ";})");
} else {
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
@ -31,17 +31,17 @@ AMDRequireDependency.Template.prototype.apply = function(dep, source, outputOpti
} else if(!depBlock.arrayRange && depBlock.functionRange) {
if(typeof chunkId === "number") {
source.replace(depBlock.outerRange[0], depBlock.functionRange[0]-1,
"require.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(require) {(");
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, require, exports, module));})");
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) {(");
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, __webpack_require__, exports, module));})");
} else {
source.replace(depBlock.outerRange[0], depBlock.functionRange[0]-1,
"!/* require */(" + asComment(depBlock.chunkReason));
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, require, exports, module))");
source.replace(depBlock.functionRange[1], depBlock.outerRange[1]-1, ".call(exports, __webpack_require__, exports, module))");
}
} else if(depBlock.arrayRange && depBlock.functionRange) {
if(typeof chunkId === "number") {
source.replace(depBlock.outerRange[0], depBlock.arrayRange[0]-1,
"require.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(require) { ");
"__webpack_require__.e/* require */(" + chunkId + asComment(depBlock.chunkReason) + ", function(__webpack_require__) { ");
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0]-1, "; (");
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");

View File

@ -2,6 +2,7 @@
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var ConstDependency = require("./ConstDependency");
var CommonJsRequireDependency = require("./CommonJsRequireDependency");
var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
var RequireResolveDependency = require("./RequireResolveDependency");
@ -50,11 +51,17 @@ CommonJsPlugin.prototype.apply = function(compiler) {
return new BasicEvaluatedExpression().setString("object").setRange(expr.range);
});
compiler.parser.plugin("assign require", function(expr) {
// ignore assigning to require
// to not leak to global "require", we need to define a local require here.
var dep = new ConstDependency("var require;", 0);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;
});
compiler.parser.plugin("rename require", function(expr) {
// this is allowed and nothing to do (currently)
// define to require variable. It's still undefined, but not not defined.
var dep = new ConstDependency("var require;", 0);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return false;
});
compiler.parser.plugin("typeof module", function(expr) {

View File

@ -13,6 +13,9 @@ var LocalModulesHelpers = require("./LocalModulesHelpers");
module.exports = AbstractPlugin.create({
"expression require.cache": function(expr) {
var dep = new ConstDependency("__webpack_require__.c", expr.range);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;
},
"expression require": function(expr) {

View File

@ -17,5 +17,8 @@ ConstDependency.prototype = Object.create(NullDependency.prototype);
ConstDependency.Template = function ConstDependencyTemplate() {};
ConstDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
source.replace(dep.range[0], dep.range[1]-1, dep.expression);
if(typeof dep.range === "number")
source.insert(dep.range, dep.expression);
else
source.replace(dep.range[0], dep.range[1]-1, dep.expression);
}

View File

@ -11,9 +11,9 @@ ContextDependencyTemplateAsId.prototype.apply = function(dep, source, outputOpti
if(dep.module) {
if(dep.valueRange) {
source.replace(dep.valueRange[1], dep.range[1]-1, ")");
source.replace(dep.range[0], dep.valueRange[0]-1, "require(" + comment + dep.module.id + ").resolve(" + (typeof dep.prepend == "string" ? JSON.stringify(dep.prepend) : "") + "");
source.replace(dep.range[0], dep.valueRange[0]-1, "__webpack_require__(" + comment + dep.module.id + ").resolve(" + (typeof dep.prepend == "string" ? JSON.stringify(dep.prepend) : "") + "");
} else {
source.replace(dep.range[0], dep.range[1]-1, "require(" + comment + dep.module.id + ").resolve");
source.replace(dep.range[0], dep.range[1]-1, "__webpack_require__(" + comment + dep.module.id + ").resolve");
}
} else {
var content = "!(function webpackMissingModule() { throw new Error(" + JSON.stringify("Cannot find module \"" + dep.request + "\"") + "); }())";

View File

@ -11,9 +11,9 @@ ContextDependencyTemplateAsRequireCall.prototype.apply = function(dep, source, o
if(dep.module) {
if(dep.valueRange) {
source.replace(dep.valueRange[1], dep.range[1]-1, ")");
source.replace(dep.range[0], dep.valueRange[0]-1, "require(" + comment + dep.module.id + ")(" + (typeof dep.prepend == "string" ? JSON.stringify(dep.prepend) : "") + "");
source.replace(dep.range[0], dep.valueRange[0]-1, "__webpack_require__(" + comment + dep.module.id + ")(" + (typeof dep.prepend == "string" ? JSON.stringify(dep.prepend) : "") + "");
} else {
source.replace(dep.range[0], dep.range[1]-1, "require(" + comment + dep.module.id + ")");
source.replace(dep.range[0], dep.range[1]-1, "__webpack_require__(" + comment + dep.module.id + ")");
}
} else {
var content = "!(function webpackMissingModule() { throw new Error(" + JSON.stringify("Cannot find module \"" + dep.request + "\"") + "); }())";

View File

@ -20,7 +20,7 @@ LabeledModuleDependency.Template.prototype.apply = function(dep, source, outputO
var comment = "";
if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
if(dep.module && dep.module.meta && dep.module.meta.exports) {
var content = "var __WEBPACK_LABELED_MODULE__" + dep.module.id + " = require(" + comment + dep.module.id + ")";
var content = "var __WEBPACK_LABELED_MODULE__" + dep.module.id + " = __webpack_require__(" + comment + dep.module.id + ")";
dep.module.meta.exports.forEach(function(e) {
content += ", " + e + " = __WEBPACK_LABELED_MODULE__" + dep.module.id + "." + e;
});

View File

@ -10,7 +10,7 @@ ModuleDependencyTemplateAsRequireId.prototype.apply = function(dep, source, outp
var comment = "";
if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
if(dep.module)
var content = "require(" + comment + dep.module.id + ")";
var content = "__webpack_require__(" + comment + dep.module.id + ")";
else
var content = "!(function webpackMissingModule() { throw new Error(" + JSON.stringify("Cannot find module \"" + dep.request + "\"") + "); }())";
source.replace(dep.range[0], dep.range[1]-1, content);
@ -18,5 +18,5 @@ ModuleDependencyTemplateAsRequireId.prototype.apply = function(dep, source, outp
ModuleDependencyTemplateAsRequireId.prototype.applyAsTemplateArgument = function(name, dep, source, outputOptions, requestShortener) {
if(!dep.range) return;
source.replace(dep.range[0], dep.range[1]-1, "(require(" + name + "))");
source.replace(dep.range[0], dep.range[1]-1, "(__webpack_require__(" + name + "))");
};

View File

@ -24,11 +24,11 @@ RequireEnsureDependency.Template.prototype.apply = function(dep, source, outputO
source.replace(depBlock.chunkNameRange[0], depBlock.chunkNameRange[1]-1, comment + "0");
}
if(depBlock.chunk && !depBlock.chunk.entry && typeof depBlock.chunk.id === "number") {
source.replace(depBlock.expr.callee.range[0], depBlock.expr.callee.range[1]-1, "require.e/*nsure*/");
source.replace(depBlock.expr.callee.range[0], depBlock.expr.callee.range[1]-1, "__webpack_require__.e/*nsure*/");
source.replace(depBlock.expr.arguments[0].range[0], depBlock.expr.arguments[0].range[1]-1, (depBlock.chunk.id) + "" + asComment(depBlock.chunkReason));
} else {
source.replace(depBlock.expr.range[0], depBlock.expr.arguments[1].range[0]-1, "!/*require.ensure*/(");
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1]-1, "(require))");
source.replace(depBlock.expr.arguments[1].range[1], depBlock.expr.range[1]-1, "(__webpack_require__))");
}
}

View File

@ -17,7 +17,7 @@ RequireHeaderDependency.prototype = Object.create(NullDependency.prototype);
RequireHeaderDependency.Template = function RequireHeaderDependencyTemplate() {};
RequireHeaderDependency.Template.prototype.apply = function(dep, source) {
source.replace(dep.range[0], dep.range[1]-1, "require");
source.replace(dep.range[0], dep.range[1]-1, "__webpack_require__");
};
RequireHeaderDependency.Template.prototype.applyAsTemplateArgument = function(name, dep, source, outputOptions, requestShortener) {

View File

@ -14,7 +14,6 @@ module.exports = NodeMainTemplate;
NodeMainTemplate.prototype = Object.create(MainTemplate.prototype);
NodeMainTemplate.prototype.constructor = NodeMainTemplate;
NodeMainTemplate.prototype.requireFn = "webpackRequire";
NodeMainTemplate.prototype.renderLocalVars = function(hash, chunk) {
var buf = MainTemplate.prototype.renderLocalVars.call(this, hash, chunk);
if(chunk.chunks.length > 0) {
@ -96,12 +95,6 @@ NodeMainTemplate.prototype.renderRequireEnsure = function(hash, chunk) {
}
};
NodeMainTemplate.prototype.renderRequireExtensions = function(hash, chunk) {
var buf = MainTemplate.prototype.renderRequireExtensions.call(this, hash, chunk);
buf.push(this.requireFn + ".parentRequire = require;");
return buf;
};
NodeMainTemplate.prototype.renderHotModuleReplacementInit = function(hash, chunk) {
var hotUpdateChunkFilename = this.outputOptions.hotUpdateChunkFilename;
var hotUpdateMainFilename = this.outputOptions.hotUpdateMainFilename;

View File

@ -54,7 +54,7 @@ NodeNativeModule.prototype.identifier = NodeNativeModule.prototype.readableIdent
NodeNativeModule.prototype.build = function(options, compilation, resolver, fs, callback) {callback()};
NodeNativeModule.prototype.source = function() {
return new RawSource("module.exports = require.parentRequire(" + JSON.stringify(this.request) + ");");
return new RawSource("module.exports = require(" + JSON.stringify(this.request) + ");");
};
NodeNativeModule.prototype.needRebuild = function() {

View File

@ -60,8 +60,8 @@ describe("Compiler", function() {
files.should.have.property("bundle.js").have.type("string");
Object.keys(files).should.be.eql(["bundle.js"]);
var bundle = files["bundle.js"];
bundle.should.include("function require(");
bundle.should.include("require(/*! ./a */ 1);");
bundle.should.include("function __webpack_require__(");
bundle.should.include("__webpack_require__(/*! ./a */ 1);");
bundle.should.include("FIXDIR/c.js");
bundle.should.include("FIXDIR/a.js");
bundle.should.include("This is a");
@ -78,8 +78,8 @@ describe("Compiler", function() {
files.should.have.property("bundle.js").have.type("string");
Object.keys(files).should.be.eql(["bundle.js"]);
var bundle = files["bundle.js"];
bundle.should.include("function require(");
bundle.should.include("require(/*! ./a */");
bundle.should.include("function __webpack_require__(");
bundle.should.include("__webpack_require__(/*! ./a */");
bundle.should.include("FIXDIR/main1.js");
bundle.should.include("FIXDIR/a.js");
bundle.should.include("FIXDIR/b.js");
@ -99,10 +99,10 @@ describe("Compiler", function() {
files.should.have.property("bundle.js").have.type("string");
Object.keys(files).should.be.eql(["bundle.js"]);
var bundle = files["bundle.js"];
bundle.should.include("function require(");
bundle.should.include("require(/*! ./a */");
bundle.should.include("require(/*! ./b */");
bundle.should.include("require(/*! ./c */");
bundle.should.include("function __webpack_require__(");
bundle.should.include("__webpack_require__(/*! ./a */");
bundle.should.include("__webpack_require__(/*! ./b */");
bundle.should.include("__webpack_require__(/*! ./c */");
bundle.should.include("FIXDIR/abc.js");
bundle.should.include("FIXDIR/a.js");
bundle.should.include("FIXDIR/b.js");
@ -125,9 +125,9 @@ describe("Compiler", function() {
Object.keys(files).should.be.eql(["bundle.js", "1.bundle.js"]);
var bundle = files["bundle.js"];
var chunk = files["1.bundle.js"];
bundle.should.include("function require(");
bundle.should.include("require(/*! ./b */");
chunk.should.not.include("require(/* ./b */");
bundle.should.include("function __webpack_require__(");
bundle.should.include("__webpack_require__(/*! ./b */");
chunk.should.not.include("__webpack_require__(/* ./b */");
bundle.should.include("FIXDIR/chunks.js");
chunk.should.include("FIXDIR/a.js");
chunk.should.include("FIXDIR/b.js");

View File

@ -21,3 +21,10 @@ it("should be able to require.resolve with automatical context", function() {
var template = "tmpl";
require.resolve("./templates/" + template).should.be.eql(require.resolve("./templates/tmpl"));
});
it("should be able to use renaming combined with a context", function() {
var renamedRequire = require;
require = function () {};
var template = "tmpl";
renamedRequire("./templates/" + template).should.be.eql("test template");
});

View File

@ -99,12 +99,10 @@ it("should be able to use require.js-style define, with an object", function() {
});
it("should offer AMD-style define for CommonJs", function(done) {
var _test_require = require.valueOf();
var _test_exports = exports;
var _test_module = module;
define(function(require, exports, module) {
(typeof require).should.be.eql("function");
require.valueOf().should.be.equal(_test_require);
exports.should.be.equal(_test_exports);
module.should.be.equal(_test_module);
require("./circular").should.be.eql(1);

View File

@ -1,5 +1,5 @@
it("should have correct properties on the require function", function() {
__webpack_require__.cache.should.have.type("object");
__webpack_require__.modules.should.have.type("object");
__webpack_require__.c.should.have.type("object");
__webpack_require__.m.should.have.type("object");
__webpack_require__.p.should.have.type("string");
});