Merge pull request #1224 from thaiat/feat-template-fn

feat(app): devtool(Fallback)ModuleFilenameTemplate can now also be defined as function
This commit is contained in:
Tobias Koppers 2015-07-12 22:02:26 +02:00
commit d351f0371b
4 changed files with 36 additions and 0 deletions

View File

@ -66,6 +66,19 @@ ModuleFilenameHelpers.createFilename = function createFilename(module, moduleFil
var allLoaders = getBefore(identifier, "!");
var query = getAfter(resource, "?");
var resourcePath = resource.substr(0, resource.length - query.length);
if(typeof moduleFilenameTemplate === "function") {
return moduleFilenameTemplate({
identifier: identifier,
shortIdentifier: shortIdentifier,
resource: resource,
resourcePath: resourcePath,
absoluteResourcePath: absoluteResourcePath,
allLoaders: allLoaders,
query: query,
moduleId: moduleId,
hash: hash
});
}
return (moduleFilenameTemplate
.replace(ModuleFilenameHelpers.REGEXP_ALL_LOADERS_RESOURCE, identifier)
.replace(ModuleFilenameHelpers.REGEXP_LOADERS_RESOURCE, shortIdentifier)

View File

@ -0,0 +1,9 @@
it("should include test.js in SourceMap", function() {
var fs = require("fs");
var source = fs.readFileSync(__filename + ".map", "utf-8");
var map = JSON.parse(source);
map.sources.should.containEql("dummy:///./test.js");
});
require.include("./test.js");

View File

@ -0,0 +1,14 @@
module.exports = {
output: {
lineToLine: true,
devtoolModuleFilenameTemplate: function(info) {
return "dummy:///" + info.resourcePath;
}
},
node: {
__dirname: false,
__filename: false
},
devtool: "cheap-source-map"
};