«Непроверенные точки останова» при использовании отладчика VS для компонентов Vue в файле TS

Проблема:
Я получаю непроверенные точки останова, когда устанавливаю их в своих файлах TS и компонентах Vue при запуске отладчика VS. Я не знаю, актуально ли это, но это код FE для бэкэнда Jupyter Lab, но я не думаю, что это повлияет на отладчик VS? Я думаю, что мои конфиги, вероятно, просто неверны. Я также пытался добавить «отладчик» в код Vue и TS, но они так и не сработали.

Что я пробовал:
Я пытался настроить файл запуска несколькими способами. Вот мой файл launch.json для отладчика VS:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Remote debugging",
            "sourceMaps": true,
            "url": "http://localhost:8888/?token=<>",
            "webRoot": "${workspaceFolder}",
            "sourceMapPathOverrides": {
                "*": "${webRoot}/*"
              }
        },
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Webpack",
            "program": "${workspaceFolder}",
            "cwd": "${workspaceFolder}",
            "sourceMaps": true
        },
    ]
  }

Вот мой TS.config

{
  "compilerOptions": {
    "sourceMap": true,
    "strict": true,
    "strictPropertyInitialization": false,
    "strictFunctionTypes": false,
    "module": "amd",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "lib": ["es2017", "dom"],
    "allowJs": true,
    "skipLibCheck": true,
    "newLine": "LF",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  },
  "include": ["src/**/*"]
}

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

/**
 * Webpack configuration for production.
 *
 * Optimizes and minifies bundle.
 */

const webpack = require("webpack");
const merge = require("webpack-merge");
const commonConfig = require("./webpack.common.js");

module.exports = merge.multiple(commonConfig, {
  mode: "production",
  devtool: "source-map",
  main: {
    optimization: {
      minimize: true
    },
    plugins: [
      new webpack.LoaderOptionsPlugin({
        minimize: true,
        debug: false
      }),
      new webpack.DefinePlugin({
        "process.env": {
          NODE_ENV: JSON.stringify("production")
        }
      }),
      // new webpack.optimize.UglifyJsPlugin({
      //   beautify: false,
      //   compress: {
      //     warnings: false,
      //     drop_console: true
      //   },
      //   comments: false,
      //   sourceMap: true
      // }),
      new webpack.optimize.OccurrenceOrderPlugin(),
      new webpack.optimize.ModuleConcatenationPlugin()
    ]
  }
});

Вот мой вебпак

// Entry point webpack config that delegates to different environments depending on the --env passed in.
module.exports = function(env) {
  process.env.NODE_ENV = env;
  return require(`./webpack.${env}.js`);
};

Вот мой webpack.production

/**
 * Webpack configuration for production.
 *
 * Optimizes and minifies bundle.
 */

const webpack = require("webpack");
const merge = require("webpack-merge");
const commonConfig = require("./webpack.common.js");

module.exports = merge.multiple(commonConfig, {
  mode: "production",
  devtool: "source-map",
  main: {
    optimization: {
      minimize: true
    },
    plugins: [
      new webpack.LoaderOptionsPlugin({
        minimize: true,
        debug: false
      }),
      new webpack.DefinePlugin({
        "process.env": {
          NODE_ENV: JSON.stringify("production")
        }
      }),
      // new webpack.optimize.UglifyJsPlugin({
      //   beautify: false,
      //   compress: {
      //     warnings: false,
      //     drop_console: true
      //   },
      //   comments: false,
      //   sourceMap: true
      // }),
      new webpack.optimize.OccurrenceOrderPlugin(),
      new webpack.optimize.ModuleConcatenationPlugin()
    ]
  }
});
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Мне нравится библиотека Mantine Component , но заставить ее работать без проблем с Remix бывает непросто.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
TypeScript против JavaScript
TypeScript против JavaScript
TypeScript vs JavaScript - в чем различия и какой из них выбрать?
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Не все нужно хранить на стороне сервера. Иногда все, что вам нужно, это постоянное хранилище на стороне клиента для хранения уникальных для клиента...
Что такое ленивая загрузка в Angular и как ее применять
Что такое ленивая загрузка в Angular и как ее применять
Ленивая загрузка - это техника, используемая в Angular для повышения производительности приложения путем загрузки модулей только тогда, когда они...
2
0
304
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не могли бы вы попытаться удалить запись sourceMapPathOverrides из конфигурации запуска Chrome?

"sourceMapPathOverrides": {
  "*": "${webRoot}/*"
}

Не уверен, почему вы установили его там вручную, переопределяет значения по умолчанию по VS Code уже должно быть хорошо, если вы сохранили настройки веб-пакета devtoolModuleFilenameTemplate по умолчанию (и я не вижу, что указано в вашем конфиге). Эти настройки влияют на то, как пользовательская схема webpack:/// веб-пакета будет разрешаться для исходных карт. Проблема в том, что если вы установите что-то там вручную, значения по умолчанию все будут переопределены.

Если вы можете выполнять отладку в режиме development, но не в режиме production, возможно, это связано с проблемой плагина webpack/terser-webpack-plugin с исходными картами производства. Смотрите здесь: Ссылка1, Ссылка2.

Например.

{
  ...
  mode: "development",
  devtool: "inline-source-map" (or "source-map")
}

работает в моей среде.

Обновлять:

Я только что увидел, что в вашей конфигурации разработки веб-пакета вы установили mode: "production". Не могли бы вы изменить это на "development" и посмотреть, работает ли это?

Да, я пытался удалить sourceMapPathOverrides, и для devtool установлено значение «source-map». Я подозреваю, что веб-пакет связывает его, а лаборатория Jupyter снова связывает его, поэтому он теряет исходное сопоставление и, следовательно, не может отлаживать.

Gooby 01.08.2019 19:40

омг..... Это работает! Ты гений!! Никто не мог этого понять, даже люди на форумах Jupyter Lab.

Gooby 04.08.2019 01:38

наслаждайся своей щедростью, сэр

Gooby 04.08.2019 01:43

обратите внимание, что "inline-source-map" - это то, что позволило ему работать.

Gooby 04.08.2019 02:40

рад что помогло :-)

ford04 04.08.2019 09:37

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