mirror of https://github.com/webpack/webpack.git
rename generated require to __webpack_require__
fixes #141 fixes RubenVerborgh/N3.js#18
This commit is contained in:
parent
fb7958d172
commit
0fea43b4cb
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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__))");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 + "\"") + "); }())";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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__));");
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 + "\"") + "); }())";
|
||||
|
|
|
|||
|
|
@ -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 + "\"") + "); }())";
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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 + "))");
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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__))");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
});
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
});
|
||||
Loading…
Reference in New Issue