Chrome: используйте исходные карты для отладки содержимого - PullRequest
0 голосов
/ 26 октября 2018

Я разрабатываю веб-расширение для Chrome.Код написан в машинописном тексте, а затем упакован с помощью parcel.

Сгенерированный вывод выглядит мне корректно, но Chrome не может загрузить исходные карты для сценария содержимого, написанного в машинописном тексте.Чтобы позволить вам воспроизвести проблему, я настроил этот минимальный пример: https://github.com/lhk/chrome_ts_sourcemaps

git clone https://github.com/lhk/chrome_ts_sourcemaps
cd chrome_ts_sourcemaps
npm install
parcel build src/manifest.json

Это создает папку dist/, которую можно загрузить как расширение в Chrome.Как видите, сгенерированный код содержит исходные карты:

console.log("I'm the contentscript");
},{}]},{},["rrAT"], null)
//# sourceMappingURL=/index.map

Мой пример содержит два сценария: ContentScript и сценарий, включенный в popup.html обзора браузера.Они оба печатают что-то на консоли, что облегчает их поиск в Chrome:

popup log

contentscript log

console.log из всплывающего окна уже распознается как popup.ts:1.Chrome знает, что это был файл машинописного текста.

Но содержание не сопоставлено с его исходным источником.Как я могу сделать, чтобы Chrome использовал исходную карту?

1 Ответ

0 голосов
/ 01 ноября 2018

Проблема в путях к исходной карте. Начальный / неверен для файлов в папках. Этим файлам нужен либо полный путь, включая родительскую папку, либо только их имя без косой черты.

Для тех, кто также использует посылку, правильное поведение может быть включено с помощью дополнительной опции:

--public-url ./

Связанная проблема: https://github.com/parcel-bundler/parcel/issues/2209

...