From 8316062b23ff81852bbb5dbd33124545105394a3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 19 May 2016 00:49:54 +0200 Subject: [PATCH] rollup sourcemaps sources correction, handle sanitization entirely in loader --- compilers/esm.js | 2 +- lib/rollup.js | 7 +++++++ lib/trace.js | 18 ------------------ 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/compilers/esm.js b/compilers/esm.js index 90b9a06..9add9a2 100644 --- a/compilers/esm.js +++ b/compilers/esm.js @@ -58,7 +58,7 @@ exports.attach = function(loader) { var babel = require('babel-core'); var output = babel.transform(load.source, { babelrc: false, - filename: load.address, + filename: load.path, inputSourceMap: load.metadata.sourceMap, ast: true, resolveModuleSource: function(dep) { diff --git a/lib/rollup.js b/lib/rollup.js index 1004c2a..0ca922e 100644 --- a/lib/rollup.js +++ b/lib/rollup.js @@ -274,6 +274,13 @@ exports.rollupTree = function(loader, tree, entryPoints, traceOpts, compileOpts) var output = bundle.generate(generateOptions); + // convert sources list into paths + // no input source maps support, so nothing more to worry about here + if (output.map) + output.map.sources = output.map.sources.map(function(name) { + return tree[name].path; + }); + if (fullTreeRollup) return { source: output.code, diff --git a/lib/trace.js b/lib/trace.js index cd8c496..a56ea7c 100644 --- a/lib/trace.js +++ b/lib/trace.js @@ -458,24 +458,6 @@ Trace.prototype.getLoadRecord = function(canonical, excludeURLs, parentStack) { } } - // sanitize source map - var sourceMap = load.metadata.sourceMap; - if (sourceMap) { - if (typeof sourceMap == 'string') - sourceMap = load.metadata.sourceMap = JSON.parse(sourceMap); - - if (load.metadata.loader) { - var originalName = load.name.split('!')[0]; - - // force set the filename of the original file - sourceMap.file = originalName + '!transpiled'; - - // force set the sources list if only one source - if (!sourceMap.sources || sourceMap.sources.length <= 1) - sourceMap.sources = [originalName]; - } - } - // normalize dependencies to populate depMap return Promise.all(result.deps.map(function(dep) { return loader.normalize(dep, normalized, address)