Sentry-javascript: [ error ] ./node_modules/@sentry/node/esm/integrations/console.js Modul tidak ditemukan: Tidak dapat menyelesaikan 'konsol' di - Sentry di Nextjs

Dibuat pada 11 Jan 2020  ·  22Komentar  ·  Sumber: getsentry/sentry-javascript

Paket + Versi

  • @sentry/browser ^5.11.0
  • @sentry/node ^5.11.0
  • node v12.7.0

Keterangan

Saya memiliki aplikasi nextjs dan saya mengikuti tutorial ini yang disediakan oleh komunitas nextjs . Masalahnya adalah setelah membangun dan menjalankan aplikasi saya, ini memberikan kesalahan ini:

[ error ] ./node_modules/@sentry/node/esm/integrations/console.js
Module not found: Can't resolve 'console' in '/.../node_modules/@sentry/node/esm/integrations'

Saya membangun kembali aplikasi saya dan menghapus kunci benang dan folder build saya tetapi tidak ada yang terjadi! Meskipun saya memiliki direktori di node_modules saya!

Kesalahannya adalah ketika saya mencoba mengimpor Sentry seperti ini:

import * as Sentry from '@sentry/node';

Screenshot from 2020-01-11 12-56-20

Needs Triage

Komentar yang paling membantu

@5tormTrooper Tidak yakin apakah ini akan membantu, tapi saya lupa menambahkan () ke pernyataan yang dibutuhkan:

const withSourceMaps = require('@zeit/next-source-maps')()

Semua 22 komentar

Saya pikir masalahnya adalah versi @zeit/next-source-maps yang saya ubah menjadi:
@zeit/next-source-maps": "0.0.4-canary.1 .

Kemudian saya membersihkan node_modules dan menghapus yarn.lock dan membangun kembali! Ini bekerja sekarang!

@afsanefda Saya masih memiliki masalah ini setelah membersihkan node_modules menghapus yarn.lock dan memiliki @zeit/next-source-maps": "0.0.4-canary.1 sebagai ketergantungan... Apakah Anda melakukan hal lain yang dapat memperbaiki masalah?

Menambahkan:

if (!options.isServer) {
  config.resolve.alias['@sentry/node'] = '@sentry/browser'
}

ke next.config.js

Ada solusi untuk ini?

Ada solusi untuk ini?

Ini pasti karena inkonsistensi versi. silakan periksa versi seperti yang dijelaskan di atas.

Mengikuti saran dengan tepat dan saya masih mengalami masalah ini.

@5tormTrooper Tidak yakin apakah ini akan membantu, tapi saya lupa menambahkan () ke pernyataan yang dibutuhkan:

const withSourceMaps = require('@zeit/next-source-maps')()

saya masih menghadapi masalah ini:

@sentry/node^5.11.0

Ada yang bisa bantu?

@philkeys sudah mencobanya. Tidak beruntung.

Saya menghadapi masalah yang sama setelah memutakhirkan Next.js dari ' 9.1.6 ' ke ' 9.3.5 '. Setelah beberapa debugging saya pikir ' @sentry/node ' entah bagaimana berakhir di bundel klien. Tampaknya baris ini berhenti bekerja tiba-tiba.

if (!isServer) { config.resolve.alias['@sentry/node'] = '@sentry/browser'; }

Kami membuka kembali masalah ini? Saya mencoba memperbarui semua paket dan tidak dapat menemukan cara untuk menyelesaikannya.

Apakah ada solusi untuk masalah ini? Tampaknya ini adalah fitur umum yang harus didukung oleh perpustakaan mana pun.

Seperti yang Anda tahu, semua masalah yang direferensikan telah diselesaikan dengan mengubah konfigurasi dev. Saya tidak dapat memberikan perbaikan spesifik apa pun jika saya tidak dihadapkan dengan masalah konkret dan kasus repro.

@kamilogorek thx infonya. Saya hanya melihat satu referensi untuk masalah yang tampaknya tidak terkait. OP menyarankan memperbarui @zeit/next-source-maps (yang tidak kami gunakan)

Saya akan mencoba membuat repo reproduksi, meskipun Anda harus menyediakan file .env dengan token penjaga sendiri.

ada solusi?

Saya bisa membuatnya bekerja dengan meniru contoh yang diberikan . Saya mengalami masalah ini lagi ketika beralih ke SSG ( next export ) Karena kami tidak memerlukan laporan server untuk SSG, kami cukup menghapus alias webpack (+ semua yang merujuk @sentry/node ) dan berhasil lagi . Sekarang kita hanya menggunakan @sentry/browser .

Jika Anda memiliki baris ini:

if (!isServer) { config.resolve.alias['@sentry/node'] = '@sentry/browser'; }

Maka Anda juga perlu menginstal @sentry/browser . Kesalahannya sedikit menyesatkan ...

di next.config.js saya, saya sudah melakukan fs: metode "kosong" dengan juga aliasing penjaga/simpul dengan browser ketika !isServer namun menambahkan console.log di sana Anda dapat melihat log Anda tidak dicetak di konsol.

menggali melalui kode sumber plugin yang saya miliki (withSourceMaps, withSass, withOptimizedImages) dan menambahkan console.log di masing-masing plugin, saya menyadari konfigurasi dasar saya tidak dikirim ke plugin luar dengan metode rantai ini (tampaknya kembali konfigurasi sendiri tetapi ada sesuatu yang masih salah):

module.exports = withBundleAnalyzer(
    withSourceMaps(
        withSass(
            withOptimizedImages(baseConfig)
        )
    )

jadi fs Anda: "kosong" tidak pernah dihormati.

solusi yang saya temukan untuk ini adalah menginstal paket next-compose-plugins lalu ubah ekspor ke

module.exports = withPlugins(
  [
    [withOptimizedImages],
    [withSass],
    [withSourceMaps],
    [withBundleAnalyzer],
  ],
  baseConfig
);

Jika Anda memiliki baris ini:

if (!isServer) { config.resolve.alias['@sentry/node'] = '@sentry/browser'; }

Maka Anda juga perlu menginstal @sentry/browser . Kesalahannya sedikit menyesatkan ...

@vpontis , ini tidak berhasil untuk saya. Saya menggunakan Sentry dengan Vue.js dan telah menambahkan ini ke vue.config.js

  chainWebpack: (config) => {
    config.resolve.alias['@sentry/node'] = '@sentry/browser'
  }

Saya ingin menambahkan jika seseorang masih mengalami masalah.

Jika Anda menggunakan next-source-maps, pastikan paket @zeit/next-source-maps disetel ke 0.0.4-canary.1

Saya bahkan tidak membutuhkan next.config.js, dan saya tidak menggunakan penjaga dengan next-source-maps jadi saya tidak yakin apa solusinya untuk saya.

if (process.env.NEXT_PUBLIC_SENTRY_DSN) { Sentry.init({ enabled: true, dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, }); }

adalah apa yang saya masukkan ke _app.js saya setelah saya menginstal @sentry/node @sentry/browser @sentry/react dan saya masih mendapatkan kesalahan ini.

Saya mengalami ini setelah saya mulai menggunakan @zeit/next-source-maps": "0.0.4-canary.1 juga!

Untuk memperbaikinya, saya menghapus plugin, dan kemudian menambahkan bagian penting dari kode ke konfigurasi berikutnya:

const { dev } = options

      if (!dev) {
        config.devtool = options.devtool || 'source-map'

        for (const plugin of config.plugins) {
          if (plugin.constructor.name === 'UglifyJsPlugin') {
            plugin.options.sourceMap = true
            break
          }
        }

        if (config.optimization && config.optimization.minimizer) {
          for (const plugin of config.optimization.minimizer) {
            if (plugin.constructor.name === 'TerserPlugin') {
              plugin.options.sourceMap = true
              break
            }
          }
        }
      }

Ini bukan masalah dengan penjaga, tetapi dengan plugin peta sumber berikutnya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat