Ensure that file-path sourcemaps load relative to the file containing the comment.

This commit is contained in:
Logan Smyth 2018-06-18 22:06:08 -07:00
parent 3c90baaf6c
commit 532c25c8db
2 changed files with 15 additions and 6 deletions

View File

@ -160,7 +160,7 @@ declare module "convert-source-map" {
fromComment(str: string): Converter, fromComment(str: string): Converter,
fromMapFileComment(str: string): Converter, fromMapFileComment(str: string): Converter,
fromSource(str: string): Converter, fromSource(str: string): Converter,
fromMapFileSource(str: string): Converter, fromMapFileSource(str: string, dir: string): Converter,
removeComments(str: string): string, removeComments(str: string): string,
removeMapFileComments(str: string): string, removeMapFileComments(str: string): string,
generateMapFileComment(path: string, options?: ?{ multiline: boolean }): string, generateMapFileComment(path: string, options?: ?{ multiline: boolean }): string,

View File

@ -1,5 +1,6 @@
// @flow // @flow
import path from "path";
import buildDebug from "debug"; import buildDebug from "debug";
import * as t from "@babel/types"; import * as t from "@babel/types";
import type { PluginPasses } from "../config"; import type { PluginPasses } from "../config";
@ -47,14 +48,22 @@ export default function normalizeFile(
} }
if (!inputMap) { if (!inputMap) {
try { if (typeof options.filename === "string") {
inputMap = convertSourceMap.fromMapFileSource(code); try {
inputMap = convertSourceMap.fromMapFileSource(
code,
path.dirname(options.filename),
);
if (inputMap) { if (inputMap) {
code = convertSourceMap.removeMapFileComments(code);
}
} catch (err) {
debug("discarding unknown file input sourcemap", err);
code = convertSourceMap.removeMapFileComments(code); code = convertSourceMap.removeMapFileComments(code);
} }
} catch (err) { } else {
debug("discarding unknown file input sourcemap", err); debug("discarding un-loadable file input sourcemap");
code = convertSourceMap.removeMapFileComments(code); code = convertSourceMap.removeMapFileComments(code);
} }
} }