diff --git a/lib/ModuleFilenameHelpers.js b/lib/ModuleFilenameHelpers.js index 54052fd30..5ea968fcf 100644 --- a/lib/ModuleFilenameHelpers.js +++ b/lib/ModuleFilenameHelpers.js @@ -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) diff --git a/test/configCases/filename-template/module-filename-template/index.js b/test/configCases/filename-template/module-filename-template/index.js new file mode 100644 index 000000000..4ba38d5ad --- /dev/null +++ b/test/configCases/filename-template/module-filename-template/index.js @@ -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"); + diff --git a/test/configCases/filename-template/module-filename-template/test.js b/test/configCases/filename-template/module-filename-template/test.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/configCases/filename-template/module-filename-template/webpack.config.js b/test/configCases/filename-template/module-filename-template/webpack.config.js new file mode 100644 index 000000000..f00843fab --- /dev/null +++ b/test/configCases/filename-template/module-filename-template/webpack.config.js @@ -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" + +};