Встроенные исходные карты, сгенерированные gulp-sourcemaps, не работающими в отладчике VS-кода

Я пытаюсь сгенерировать исходные карты с глотком. Я передаю свой код с Babel, и я хотел бы иметь возможность использовать отладчик из VS Code. Я не очень много знаю об исходных картах, и мой способ определить, являются ли они действительными или нет, состоит в том, чтобы попытаться использовать отладчик с точками останова (если он останавливается на точках останова, тогда он работает).

Вот мой сценарий:

// src/main.js
const i = 1;
const n = 2*i; // breakpoint on this line
console.log(n);

А вот моя конфигурация для отладчика:

//.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/dist/main.js"
    }
  ]
}

Команда npx babel src --out-dir dist --source-maps переносит мой код и .js.map файл создается в папке dist. Выполнение конфигурации отладчика сверху работает как задумано. Отладчик останавливается на точке останова.

Команда npx babel src --out-dir dist --source-maps inline переносит мой код и исходные карты встроены в .js выходной файл. Выполнение конфигурации отладчика сверху также работает как задумано. Отладчик останавливается на точке останова.

Это показывает, что моя конфигурация отладчика должна работать как для встроенных, так и для внешних исходных карт.

Я создал следующую задачу Gulp для переноса моего кода.

import {dest, src} from "gulp";
import babel from "gulp-babel";
import sourcemaps  from "gulp-sourcemaps";

function transpile() {
  return src("src/**/*.js")
    .pipe(sourcemaps.init())
    .pipe(babel())
    .pipe(sourcemaps.write(
      ".",
      {
          includeContent: false,
          sourceRoot: "../src"
      }))
    .pipe(dest("dist"));
}
export {transpile};

Команда npx gulp transpile выполняет эту задачу и .js.map файл создается в папке dist. Выполнение конфигурации отладчика сверху работает как задумано. Отладчик останавливается на точке останова.

Затем я отредактировал задачу Gulp выше, чтобы она давала мне встроенные исходные карты:

import {dest, src} from "gulp";
import babel from "gulp-babel";
import sourcemaps  from "gulp-sourcemaps";

function transpile() {
  return src("src/**/*.js")
    .pipe(sourcemaps.init())
    .pipe(babel())
    .pipe(sourcemaps.write())
    .pipe(dest("dist"));
}
export {transpile};

Команда npx gulp transpile выполняет эту задачу, и исходные карты встроены в мой выходной файл. Однако отладчик не останавливается на точке останова. Я не смог понять, почему до сих пор.

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

Любая идея? Большое спасибо!

0 ответов

Другие вопросы по тегам