From c9363b9f44ff16bffc90dd2f576e8709d2483be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20van=20Br=C3=BCgge?= Date: Fri, 4 Aug 2017 00:55:35 +0200 Subject: [PATCH 1/4] Add fixWebpackSourcePath option --- README.md | 1 + src/index.js | 9 ++++++++- src/options.json | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e0f976..4714abb 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ The loader supports all options supported by `istanbul-lib-instrument` |**`coverageVariable`**|`{String}`|`__coverage__`|Name of global coverage variable| |**`preserveComments`**|`{Boolean}`|`false`|Preserve comments in `output`| |**`produceSourceMap`**|`{Boolean}`|`false`|Set to `true` to produce a source map for the instrumented code| +|**`fixWebpackSourcePaths`**|`{Boolean}`|`false`|Set to `true` to prevent filepath error in coverage| |**`sourceMapUrlCallback`**|`{Function}`|`null`|A callback function that is called when a source map URL is found in the original code. This function is called with the source filename and the source map URL| **webpack.config.js** diff --git a/src/index.js b/src/index.js index 1685cac..d62faac 100644 --- a/src/index.js +++ b/src/index.js @@ -22,6 +22,13 @@ export default function (source, sourceMap) { const instrumenter = createInstrumenter(options); instrumenter.instrument(source, this.resourcePath, (error, instrumentedSource) => { - this.callback(error, instrumentedSource, instrumenter.lastSourceMap()); + let src = instrumentedSource; + if (options.fixWebpackSourcePaths) { + src = src.replace(/sources:\[([^\]])*\]/g, (match) => { + const splits = match.split('!'); + return `sources:['${splits[splits.length - 1]}`; + }); + } + this.callback(error, src, instrumenter.lastSourceMap()); }, srcMap); } diff --git a/src/options.json b/src/options.json index 5944cd0..1656a56 100644 --- a/src/options.json +++ b/src/options.json @@ -21,6 +21,9 @@ }, "produceSourceMap": { "type": "boolean" + }, + "fixWebpackSourcePaths": { + "type": "boolean" } }, "additionalProperties": true From c9e99a87270b3f77b29e793f960469c7b61840d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20van=20Br=C3=BCgge?= Date: Fri, 4 Aug 2017 11:25:51 +0200 Subject: [PATCH 2/4] Add test --- src/index.js | 4 ++-- test/__snapshots__/index.test.js.snap | 13 +++++++++++++ test/index.test.js | 13 +++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index d62faac..b0f2fdf 100644 --- a/src/index.js +++ b/src/index.js @@ -25,8 +25,8 @@ export default function (source, sourceMap) { let src = instrumentedSource; if (options.fixWebpackSourcePaths) { src = src.replace(/sources:\[([^\]])*\]/g, (match) => { - const splits = match.split('!'); - return `sources:['${splits[splits.length - 1]}`; + const splits = match.replace('sources:[', '').split('!'); + return `sources:[${splits[splits.length - 1]}`; }); } this.callback(error, src, instrumenter.lastSourceMap()); diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index 4f9dade..cb94e94 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -6,6 +6,19 @@ exports[`errors 1`] = `Array []`; exports[`errors 2`] = `Array []`; +exports[`fix webpack paths 1`] = ` +"webpackJsonp([0],[ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +\\"use strict\\"; +var cov_1v2zerd2hz=function(){var path=\\"/fixtures/basic.js\\",hash=\\"f413708755ce75e2d80eaa677c70f0f16a196e80\\",global=new Function('return this')(),gcv=\\"__coverage__\\",coverageData={path:\\"/fixtures/basic.js\\",statementMap:{\\"0\\":{start:{line:3,column:19},end:{line:3,column:563}},\\"1\\":{start:{line:3,column:76},end:{line:3,column:347}},\\"2\\":{start:{line:3,column:134},end:{line:3,column:142}},\\"3\\":{start:{line:3,column:144},end:{line:3,column:199}},\\"4\\":{start:{line:3,column:200},end:{line:3,column:231}},\\"5\\":{start:{line:3,column:232},end:{line:3,column:286}},\\"6\\":{start:{line:3,column:259},end:{line:3,column:286}},\\"7\\":{start:{line:3,column:287},end:{line:3,column:345}},\\"8\\":{start:{line:3,column:350},end:{line:3,column:559}},\\"9\\":{start:{line:3,column:407},end:{line:3,column:475}},\\"10\\":{start:{line:3,column:423},end:{line:3,column:475}},\\"11\\":{start:{line:3,column:476},end:{line:3,column:536}},\\"12\\":{start:{line:3,column:493},end:{line:3,column:536}},\\"13\\":{start:{line:3,column:537},end:{line:3,column:556}},\\"14\\":{start:{line:5,column:50},end:{line:5,column:151}},\\"15\\":{start:{line:5,column:92},end:{line:5,column:149}},\\"16\\":{start:{line:7,column:0},end:{line:20,column:4}},\\"17\\":{start:{line:9,column:4},end:{line:9,column:31}},\\"18\\":{start:{line:12,column:2},end:{line:17,column:6}},\\"19\\":{start:{line:15,column:6},end:{line:15,column:20}},\\"20\\":{start:{line:19,column:2},end:{line:19,column:13}}},fnMap:{\\"0\\":{name:\\"(anonymous_0)\\",decl:{start:{line:3,column:19},end:{line:3,column:20}},loc:{start:{line:3,column:31},end:{line:3,column:561}},line:3},\\"1\\":{name:\\"defineProperties\\",decl:{start:{line:3,column:42},end:{line:3,column:58}},loc:{start:{line:3,column:74},end:{line:3,column:349}},line:3},\\"2\\":{name:\\"(anonymous_2)\\",decl:{start:{line:3,column:357},end:{line:3,column:358}},loc:{start:{line:3,column:405},end:{line:3,column:558}},line:3},\\"3\\":{name:\\"_classCallCheck\\",decl:{start:{line:5,column:9},end:{line:5,column:24}},loc:{start:{line:5,column:48},end:{line:5,column:153}},line:5},\\"4\\":{name:\\"(anonymous_4)\\",decl:{start:{line:7,column:17},end:{line:7,column:18}},loc:{start:{line:7,column:29},end:{line:20,column:1}},line:7},\\"5\\":{name:\\"Foo\\",decl:{start:{line:8,column:11},end:{line:8,column:14}},loc:{start:{line:8,column:17},end:{line:10,column:3}},line:8},\\"6\\":{name:\\"bar\\",decl:{start:{line:14,column:20},end:{line:14,column:23}},loc:{start:{line:14,column:26},end:{line:16,column:5}},line:14}},branchMap:{\\"0\\":{loc:{start:{line:3,column:168},end:{line:3,column:198}},type:\\"binary-expr\\",locations:[{start:{line:3,column:168},end:{line:3,column:189}},{start:{line:3,column:193},end:{line:3,column:198}}],line:3},\\"1\\":{loc:{start:{line:3,column:232},end:{line:3,column:286}},type:\\"if\\",locations:[{start:{line:3,column:232},end:{line:3,column:286}},{start:{line:3,column:232},end:{line:3,column:286}}],line:3},\\"2\\":{loc:{start:{line:3,column:407},end:{line:3,column:475}},type:\\"if\\",locations:[{start:{line:3,column:407},end:{line:3,column:475}},{start:{line:3,column:407},end:{line:3,column:475}}],line:3},\\"3\\":{loc:{start:{line:3,column:476},end:{line:3,column:536}},type:\\"if\\",locations:[{start:{line:3,column:476},end:{line:3,column:536}},{start:{line:3,column:476},end:{line:3,column:536}}],line:3},\\"4\\":{loc:{start:{line:5,column:50},end:{line:5,column:151}},type:\\"if\\",locations:[{start:{line:5,column:50},end:{line:5,column:151}},{start:{line:5,column:50},end:{line:5,column:151}}],line:5}},s:{\\"0\\":0,\\"1\\":0,\\"2\\":0,\\"3\\":0,\\"4\\":0,\\"5\\":0,\\"6\\":0,\\"7\\":0,\\"8\\":0,\\"9\\":0,\\"10\\":0,\\"11\\":0,\\"12\\":0,\\"13\\":0,\\"14\\":0,\\"15\\":0,\\"16\\":0,\\"17\\":0,\\"18\\":0,\\"19\\":0,\\"20\\":0},f:{\\"0\\":0,\\"1\\":0,\\"2\\":0,\\"3\\":0,\\"4\\":0,\\"5\\":0,\\"6\\":0},b:{\\"0\\":[0,0],\\"1\\":[0,0],\\"2\\":[0,0],\\"3\\":[0,0],\\"4\\":[0,0]},inputSourceMap:{version:3,sources:[\\"test/fixtures/basic.js\\"],names:[\\"module\\",\\"exports\\"],mappings:\\";;;;;;AAAAA,OAAOC,OAAP;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,0BACQ;AACJ,aAAO,CAAC,CAAC,IAAT;AACD;AAHH;;AAAA;AAAA\\",file:\\"basic.js\\",sourceRoot:\\"\\",sourcesContent:[\\"module.exports = class Foo {\\\\n bar() {\\\\n return !!this;\\\\n }\\\\n};\\\\n\\"]},_coverageSchema:\\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var _createClass=(++cov_1v2zerd2hz.s[0],function(){++cov_1v2zerd2hz.f[0];function defineProperties(target,props){++cov_1v2zerd2hz.f[1];++cov_1v2zerd2hz.s[1];for(var i=0;i { expect(stats.compilation.errors).toMatchSnapshot('errors'); expect(stats.compilation.warnings).toMatchSnapshot('warnings'); }); + +test('fix webpack paths', async () => { + const stats = await webpack({ + extend: { + devtool: 'source-map', + }, + options: { + fixWebpackSourcePaths: true, + }, + }); + const instrumentedSource = stats.compilation.assets['main.js'].source(); + expect(instrumentedSource).toMatchSnapshot(); +}); From 463d9d6b63b6f9f93a433bf79405bb1b1b492730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20van=20Br=C3=BCgge?= Date: Sun, 7 Oct 2018 15:43:50 +0200 Subject: [PATCH 3/4] Fix path cleanup logic --- src/index.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index b0f2fdf..73898a7 100644 --- a/src/index.js +++ b/src/index.js @@ -25,8 +25,13 @@ export default function (source, sourceMap) { let src = instrumentedSource; if (options.fixWebpackSourcePaths) { src = src.replace(/sources:\[([^\]])*\]/g, (match) => { - const splits = match.replace('sources:[', '').split('!'); - return `sources:[${splits[splits.length - 1]}`; + const lines = match.slice('sources:['.length, -1).split(','); + return `sources:[${ + lines + .map(l => l.slice(1, -1).split('!')) + .map(arr => `"${arr[arr.length - 1]}"`) + .join(',') + }]`; }); } this.callback(error, src, instrumenter.lastSourceMap()); From 851531bf419db5a7711ee3c96ec58c64b439de38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20van=20Br=C3=BCgge?= Date: Sun, 7 Oct 2018 15:46:20 +0200 Subject: [PATCH 4/4] Update snapshots --- test/__snapshots__/index.test.js.snap | 38 --------------------------- 1 file changed, 38 deletions(-) delete mode 100644 test/__snapshots__/index.test.js.snap diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap deleted file mode 100644 index cb94e94..0000000 --- a/test/__snapshots__/index.test.js.snap +++ /dev/null @@ -1,38 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`disabled sourcemaps 1`] = `"{\\"version\\":3,\\"sources\\":[\\"webpack:///./test/fixtures/basic.js\\"],\\"names\\":[],\\"mappings\\":\\"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\\",\\"file\\":\\"main.js\\",\\"sourcesContent\\":[\\"\\\\\\"use strict\\\\\\";var cov_1v2zerd2hz=function(){var path=\\\\\\"/fixtures/basic.js\\\\\\",hash=\\\\\\"f413708755ce75e2d80eaa677c70f0f16a196e80\\\\\\",global=new Function('return this')(),gcv=\\\\\\"__coverage__\\\\\\",coverageData={path:\\\\\\"/fixtures/basic.js\\\\\\",statementMap:{\\\\\\"0\\\\\\":{start:{line:3,column:19},end:{line:3,column:563}},\\\\\\"1\\\\\\":{start:{line:3,column:76},end:{line:3,column:347}},\\\\\\"2\\\\\\":{start:{line:3,column:134},end:{line:3,column:142}},\\\\\\"3\\\\\\":{start:{line:3,column:144},end:{line:3,column:199}},\\\\\\"4\\\\\\":{start:{line:3,column:200},end:{line:3,column:231}},\\\\\\"5\\\\\\":{start:{line:3,column:232},end:{line:3,column:286}},\\\\\\"6\\\\\\":{start:{line:3,column:259},end:{line:3,column:286}},\\\\\\"7\\\\\\":{start:{line:3,column:287},end:{line:3,column:345}},\\\\\\"8\\\\\\":{start:{line:3,column:350},end:{line:3,column:559}},\\\\\\"9\\\\\\":{start:{line:3,column:407},end:{line:3,column:475}},\\\\\\"10\\\\\\":{start:{line:3,column:423},end:{line:3,column:475}},\\\\\\"11\\\\\\":{start:{line:3,column:476},end:{line:3,column:536}},\\\\\\"12\\\\\\":{start:{line:3,column:493},end:{line:3,column:536}},\\\\\\"13\\\\\\":{start:{line:3,column:537},end:{line:3,column:556}},\\\\\\"14\\\\\\":{start:{line:5,column:50},end:{line:5,column:151}},\\\\\\"15\\\\\\":{start:{line:5,column:92},end:{line:5,column:149}},\\\\\\"16\\\\\\":{start:{line:7,column:0},end:{line:20,column:4}},\\\\\\"17\\\\\\":{start:{line:9,column:4},end:{line:9,column:31}},\\\\\\"18\\\\\\":{start:{line:12,column:2},end:{line:17,column:6}},\\\\\\"19\\\\\\":{start:{line:15,column:6},end:{line:15,column:20}},\\\\\\"20\\\\\\":{start:{line:19,column:2},end:{line:19,column:13}}},fnMap:{\\\\\\"0\\\\\\":{name:\\\\\\"(anonymous_0)\\\\\\",decl:{start:{line:3,column:19},end:{line:3,column:20}},loc:{start:{line:3,column:31},end:{line:3,column:561}},line:3},\\\\\\"1\\\\\\":{name:\\\\\\"defineProperties\\\\\\",decl:{start:{line:3,column:42},end:{line:3,column:58}},loc:{start:{line:3,column:74},end:{line:3,column:349}},line:3},\\\\\\"2\\\\\\":{name:\\\\\\"(anonymous_2)\\\\\\",decl:{start:{line:3,column:357},end:{line:3,column:358}},loc:{start:{line:3,column:405},end:{line:3,column:558}},line:3},\\\\\\"3\\\\\\":{name:\\\\\\"_classCallCheck\\\\\\",decl:{start:{line:5,column:9},end:{line:5,column:24}},loc:{start:{line:5,column:48},end:{line:5,column:153}},line:5},\\\\\\"4\\\\\\":{name:\\\\\\"(anonymous_4)\\\\\\",decl:{start:{line:7,column:17},end:{line:7,column:18}},loc:{start:{line:7,column:29},end:{line:20,column:1}},line:7},\\\\\\"5\\\\\\":{name:\\\\\\"Foo\\\\\\",decl:{start:{line:8,column:11},end:{line:8,column:14}},loc:{start:{line:8,column:17},end:{line:10,column:3}},line:8},\\\\\\"6\\\\\\":{name:\\\\\\"bar\\\\\\",decl:{start:{line:14,column:20},end:{line:14,column:23}},loc:{start:{line:14,column:26},end:{line:16,column:5}},line:14}},branchMap:{\\\\\\"0\\\\\\":{loc:{start:{line:3,column:168},end:{line:3,column:198}},type:\\\\\\"binary-expr\\\\\\",locations:[{start:{line:3,column:168},end:{line:3,column:189}},{start:{line:3,column:193},end:{line:3,column:198}}],line:3},\\\\\\"1\\\\\\":{loc:{start:{line:3,column:232},end:{line:3,column:286}},type:\\\\\\"if\\\\\\",locations:[{start:{line:3,column:232},end:{line:3,column:286}},{start:{line:3,column:232},end:{line:3,column:286}}],line:3},\\\\\\"2\\\\\\":{loc:{start:{line:3,column:407},end:{line:3,column:475}},type:\\\\\\"if\\\\\\",locations:[{start:{line:3,column:407},end:{line:3,column:475}},{start:{line:3,column:407},end:{line:3,column:475}}],line:3},\\\\\\"3\\\\\\":{loc:{start:{line:3,column:476},end:{line:3,column:536}},type:\\\\\\"if\\\\\\",locations:[{start:{line:3,column:476},end:{line:3,column:536}},{start:{line:3,column:476},end:{line:3,column:536}}],line:3},\\\\\\"4\\\\\\":{loc:{start:{line:5,column:50},end:{line:5,column:151}},type:\\\\\\"if\\\\\\",locations:[{start:{line:5,column:50},end:{line:5,column:151}},{start:{line:5,column:50},end:{line:5,column:151}}],line:5}},s:{\\\\\\"0\\\\\\":0,\\\\\\"1\\\\\\":0,\\\\\\"2\\\\\\":0,\\\\\\"3\\\\\\":0,\\\\\\"4\\\\\\":0,\\\\\\"5\\\\\\":0,\\\\\\"6\\\\\\":0,\\\\\\"7\\\\\\":0,\\\\\\"8\\\\\\":0,\\\\\\"9\\\\\\":0,\\\\\\"10\\\\\\":0,\\\\\\"11\\\\\\":0,\\\\\\"12\\\\\\":0,\\\\\\"13\\\\\\":0,\\\\\\"14\\\\\\":0,\\\\\\"15\\\\\\":0,\\\\\\"16\\\\\\":0,\\\\\\"17\\\\\\":0,\\\\\\"18\\\\\\":0,\\\\\\"19\\\\\\":0,\\\\\\"20\\\\\\":0},f:{\\\\\\"0\\\\\\":0,\\\\\\"1\\\\\\":0,\\\\\\"2\\\\\\":0,\\\\\\"3\\\\\\":0,\\\\\\"4\\\\\\":0,\\\\\\"5\\\\\\":0,\\\\\\"6\\\\\\":0},b:{\\\\\\"0\\\\\\":[0,0],\\\\\\"1\\\\\\":[0,0],\\\\\\"2\\\\\\":[0,0],\\\\\\"3\\\\\\":[0,0],\\\\\\"4\\\\\\":[0,0]},inputSourceMap:{version:3,sources:[\\\\\\"test/fixtures/basic.js\\\\\\"],names:[\\\\\\"module\\\\\\",\\\\\\"exports\\\\\\"],mappings:\\\\\\";;;;;;AAAAA,OAAOC,OAAP;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,0BACQ;AACJ,aAAO,CAAC,CAAC,IAAT;AACD;AAHH;;AAAA;AAAA\\\\\\",file:\\\\\\"basic.js\\\\\\",sourceRoot:\\\\\\"\\\\\\",sourcesContent:[\\\\\\"module.exports = class Foo {\\\\\\\\n bar() {\\\\\\\\n return !!this;\\\\\\\\n }\\\\\\\\n};\\\\\\\\n\\\\\\"]},_coverageSchema:\\\\\\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\\\\\\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var _createClass=(cov_1v2zerd2hz.s[0]++,function(){cov_1v2zerd2hz.f[0]++;function defineProperties(target,props){cov_1v2zerd2hz.f[1]++;cov_1v2zerd2hz.s[1]++;for(var i=0;i