From 7dd2bf0a663870be2e3c1a7118ac6aa987b5726f Mon Sep 17 00:00:00 2001 From: dan Date: Sat, 3 Mar 2018 10:54:41 +0200 Subject: [PATCH] Respect babel retainLines option. --- README.md | 17 +++++++++++++++++ index.js | 10 ++++++---- node-tests/addon-test.js | 7 +++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 59d74062..62a05986 100755 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ interface EmberCLIBabelConfig { exclude?: string[]; useBuiltIns?: boolean; sourceMaps?: boolean | "inline" | "both"; + retainLines?: boolean; plugins?: BabelPlugin[]; }; @@ -159,6 +160,22 @@ var app = new EmberApp(defaults, { }); ``` +#### Enabling Retain Lines + +Babel generated source maps will enable you to debug your original ES6 source code. This is disabled by default because this will lead to wacky code but is handy for scenarios where you can't use source maps or breakpoints in external debugger are offset (vscode has this issue, see the extension https://github.com/Microsoft/vscode-chrome-debug) + +To enable it, pass `retainLines: true` in your `babel` options. + +```js +// ember-cli-build.js + +var app = new EmberApp(defaults, { + babel: { + retainLines: true + } +}); +``` + #### Modules Older versions of Ember CLI (`< 2.12`) use its own ES6 module transpiler. Because of that, this plugin disables Babel diff --git a/index.js b/index.js index 45298b12..c062493d 100644 --- a/index.js +++ b/index.js @@ -211,10 +211,12 @@ module.exports = { sourceMaps = config.babel.sourceMaps; } - let options = { - annotation: providedAnnotation || `Babel: ${this._parentName()}`, - sourceMaps - }; + let retainLines = false; + if (config.babel && "retainLines" in config.babel) { + retainLines = config.babel.retainLines; + } + + let options = { annotation: providedAnnotation || `Babel: ${this._parentName()}`, sourceMaps, retainLines }; let userPlugins = addonProvidedConfig.plugins; let userPostTransformPlugins = addonProvidedConfig.postTransformPlugins; diff --git a/node-tests/addon-test.js b/node-tests/addon-test.js index ff1a1f29..255f2997 100644 --- a/node-tests/addon-test.js +++ b/node-tests/addon-test.js @@ -718,6 +718,13 @@ describe('ember-cli-babel', function() { expect(result.sourceMaps).to.equal('inline'); }); + it("uses provided retainLines if specified", function() { + let options = { babel: { retainLines: true } }; + + let result = this.addon.buildBabelOptions(options); + expect(result.retainLines).to.equal(true); + }); + it('does not include all provided options', function() { let babelOptions = { blah: true }; let options = {