"Unverified Breakpoints" 在 TS 文件中的 Vue 组件上使用 VS 调试器时

"Unverified Breakpoints" when using VS debugger on Vue components within TS file

问题:
当我在我的 TS 文件和 Vue 组件中设置它们时,我得到了未经验证的断点,同时 运行 VS 调试器。我不知道它是否相关,但这是 Jupyter Lab 后端的 FE 代码,但我认为这不会影响 VS 调试器?我认为我的配置可能是错误的。我还尝试将 "debugger" 添加到 Vue 和 TS 代码中,但它们也没有被击中。

我试过的:
我试过以多种方式配置启动文件 这是我的 VS 调试器 launch.json:

{
    "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()
    ]
  }
});

这是我的 webpack

// 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()
    ]
  }
});

您可以尝试从 chrome 启动配置中删除 sourceMapPathOverrides 条目吗?

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

不确定,为什么你手动设置它,default overrides by VS Code should be already good, if you kept the default webpack devtoolModuleFilenameTemplate 设置(我没有看到你的配置中指定的)。这些设置会影响 webpack 的自定义 webpack:/// 模式如何为 sourcemaps 解析。问题是,如果您在那里手动设置某些内容,所有 默认值将被覆盖。

如果您可以在 development 模式下进行调试,但不能在 production 模式下进行调试,那可能是因为生产源映射存在 webpack/terser-webpack-plugin 问题。在这里观看:Link1, Link2.

例如

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

在我的环境中工作。

更新:

我刚看到,您的 webpack 开发配置中也设置了 mode: "production"。您能否将其更改为 "development" 并查看它是否有效?