Skip to content

Commit

Permalink
Fix default sourceFileName.
Browse files Browse the repository at this point in the history
This deals with a problem mentioned in [babel/babelify#255][0]. I'm not
super sure about the implications, but it seems this may have been a
regression from Babel 6.

In babel@6, the default `sourceFileName` was the basename of the input
file:

```js
require('babel-core').transform('var a = 10', {
  filename: __filename,
  sourceMaps: true
}).map
// { version: 3,
//   sources: [ 'index.js' ],
//   names: [ 'a' ],
//   mappings: 'AAAA,IAAIA,IAAI,EAAR',
//   file: 'index.js',
//   sourcesContent: [ 'var a = 10' ] } }
```

Currently however, the full file path is used:

```js
require('@babel/core').transformSync('var a = 10', {
  filename: __filename,
  sourceMaps: true
}).map
// { version: 3,
//   sources: [ '/home/goto-bus-stop/Code/babel/repro-babelify-255/index.js' ],
//   names: [ 'a' ],
//   mappings: 'AAAA,IAAIA,IAAI,EAAR',
//   file: '/home/goto-bus-stop/Code/babel/repro-babelify-255/index.js',
//   sourcesContent: [ 'var a = 10' ] } }
```

This patch adds the `path.basename()` call that [Babel 6 used][1] to
@babel/core's default options, so it's the same as back then.

```js
require('../babel/packages/babel-core').transform('var a = 10', {
  filename: __filename,
  sourceMaps: true
}).map
// { version: 3,
//   sources: [ 'index.js' ],
//   names: [ 'a' ],
//   mappings: 'AAAA,IAAIA,IAAI,EAAR',
//   sourcesContent: [ 'var a = 10' ] }
```

This is the desired behaviour for browserify at least, as it expects
relative paths in the source maps and rebases them to a root directory
when generating the final source map.

[0]: babel/babelify#255
[1]: https://github.com/babel/babel/blob/6689d2d23cdb607c326ed5a06855bfb84c050c56/packages/babel-core/src/transformation/file/index.js#L163-L172
  • Loading branch information
goto-bus-stop committed Apr 27, 2018
1 parent b28ffed commit 95974b1
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/babel-core/src/transformation/normalize-opts.js
Expand Up @@ -14,7 +14,7 @@ export default function normalizeOptions(config: ResolvedConfig): {} {
moduleRoot,
sourceRoot = moduleRoot,

sourceFileName = filenameRelative,
sourceFileName = path.basename(filenameRelative),

comments = true,
compact = "auto",
Expand Down
9 changes: 9 additions & 0 deletions packages/babel-core/test/api.js
Expand Up @@ -394,6 +394,15 @@ describe("api", function() {
});
});

it("default source map filename", function() {
return transformAsync("var a = 10;", {
filename: "/some/absolute/file/path.js",
sourceMaps: true,
}).then(function(result) {
expect(result.map.sources).toEqual(["path.js"]);
});
});

it("code option false", function() {
return transformAsync("foo('bar');", { code: false }).then(function(
result,
Expand Down

0 comments on commit 95974b1

Please sign in to comment.