如何在 Sentry 上设置源地图

Wer*_*eta 5 javascript laravel source-maps reactjs

我正在使用 Sentry 来报告我创建的 React 应用程序的错误。

问题是我不知道如何调试某些问题,因为我不知道错误发生在哪个文件中:

在此输入图像描述

我使用 Laravel mix 进行编译。看起来webpack.mix.js像这样:

mix
  .react("resources/js/checkout/CheckoutRoot.js", "public/js")
  .version();
Run Code Online (Sandbox Code Playgroud)

我尝试sourceMaps()像这样使用:

const productionSourceMaps = true;

mix
  .react("resources/js/checkout/CheckoutRoot.js", "public/js")
  .react("resources/js/checkout/DonationRoot.js", "public/js")
  .version()
  .sourceMaps(productionSourceMaps, "source-map")
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。在 Chrome 开发工具中查看时,它会将其附加到文件正下方:

//# sourceMappingURL=27.js.map?id=c4f9bf41f206bfad8600
Run Code Online (Sandbox Code Playgroud)

但是当我漂亮地打印时,它仍然会导致同样的乱码:

在此输入图像描述

我希望看到它指出我正在本地处理的组件文件。那可能吗?

更新

我尝试安装 Sentry 的 webpack 插件:

const SentryWebpackPlugin = require("@sentry/webpack-plugin");

let config = {
  output: {
    publicPath: "/",
    chunkFilename: "js/chunks/[name].js?id=[chunkhash]",
  },
  plugins: [
    new SentryWebpackPlugin({
      // sentry-cli configuration
      authToken: "MY_AUTH_TOKEN",
      org: "MY_ORG",
      project: "MY_PROJECT",
      release: "MY_RELEASE",

      include: ".",
      ignore: ["node_modules", "webpack.config.js"],
    }),
  ],
};
Run Code Online (Sandbox Code Playgroud)

release在我的源文件上初始化 Sentry 时使用相同的方法:

Sentry.init({
  dsn: "MY_DSN",
  release: "testing",
});
Run Code Online (Sandbox Code Playgroud)

放一些失败的代码:

useEffect(() => {
  console.bog("MY_RELEASE");
}, []);
Run Code Online (Sandbox Code Playgroud)

然后像往常一样编译:

npm run production
Run Code Online (Sandbox Code Playgroud)

我在浏览器上触发了错误,并在那里得到了预期的文件(MobilePayment.js):

在此输入图像描述

但从 Sentry 中,我得到的只是:

在此输入图像描述

我希望能MobilePayment.js在那里找到,但没有。编译时,我得到了这个:

在此输入图像描述

所以我假设它已将源代码上传到 Sentry。

我什至使用 Sentry-cli 尝试了同样的事情:

sentry-cli releases files release upload-sourcemaps --ext js --ext map /path/to/public/js
Run Code Online (Sandbox Code Playgroud)

它几乎做了同样的事情:

在此输入图像描述

然后我触发了同样的错误。但我仍然从 Sentry 仪表板得到相同的输出。请帮忙。

Dan*_*evy 1

我以前遇到过这个。

IIRC 的诀窍是找到正确的devtoolWebPack 选项。

我记不太清了,但我想我用过eval-cheap-module-source-mapeval-source-map