@sentry/browser
^ 5.11.0@sentry/node
^ 5.11.0node
v12.7.0nextjsアプリケーションがあり、 nextjsコミュニティが提供するこのチュートリアルに従いました。 問題は、アプリをビルドして実行した後、次のエラーが発生することです。
[ error ] ./node_modules/@sentry/node/esm/integrations/console.js
Module not found: Can't resolve 'console' in '/.../node_modules/@sentry/node/esm/integrations'
アプリを再構築し、ヤーンロックとビルドフォルダーを削除しましたが、何も起こりませんでした。 node_modulesにディレクトリがありますが!
エラーは、次のようにSentryをインポートしようとしたときです。
import * as Sentry from '@sentry/node';
問題は、私が変更した@zeit/next-source-maps
のバージョンだったと思います。
@zeit/next-source-maps": "0.0.4-canary.1
。
それから私は掃除node_modules
と削除yarn.lock
と再構築を! 現在動作中です!
@afsanefda私はまだきれいにした後、この問題持っているnode_modules
削除yarn.lock
となる@zeit/next-source-maps": "0.0.4-canary.1
依存関係として...あなたが問題を修正している可能性のある他の事をしましたか?
追加:
if (!options.isServer) {
config.resolve.alias['@sentry/node'] = '@sentry/browser'
}
next.config.js
これに対する解決策はありますか?
これに対する解決策はありますか?
これは間違いなくバージョンの不整合によるものです。 上記のバージョンを確認してください。
提案に正確に従いましたが、私はまだこの問題を抱えています。
@ 5tormTrooperこれが役立つかどうかは
const withSourceMaps = require('@zeit/next-source-maps')()
私はまだこの問題に直面しています:
@ sentry / node ^ 5.11.0
誰でも助けることができますか?
@philkeysはすでに
Next.jsを「 9.1.6 」から「 9.3.5 」にアップグレードした後、同じ問題に直面しました。 いくつかのデバッグの後、私は ' @ sentry / node 'がどういうわけかクライアントバンドルになってしまったことに気づきました。 この回線が突然機能しなくなったようです。
if (!isServer) {
config.resolve.alias['@sentry/node'] = '@sentry/browser';
}
この問題を再開しますか? すべてのパッケージを更新しようとしましたが、解決方法がわかりません。
この問題の解決策はありますか? これは非常に一般的な機能のようで、どのライブラリもすぐにサポートする必要があります。
お分かりのように、参照されているすべての問題は、devconfigを変更することですでに何らかの形で解決されています。 具体的な問題と再現ケースが提示されない場合、特定の修正を提供することはできません。
情報については@kamilogorekthx 。 関係がないと思われる問題への参照が1つだけ表示されます。 OPは@zeit/next-source-maps
更新することを提案しました(これは使用していません)
複製リポジトリを作成しようとしますが、歩哨トークンを含む.env
ファイルを自分で提供する必要があります。
解決策はありますか?
この行がある場合:
if (!isServer) { config.resolve.alias['@sentry/node'] = '@sentry/browser'; }
次に、 @sentry/browser
もインストールする必要があります。 エラーは少し誤解を招くです...
next.config.jsでは、!isServerのときにsentry / nodeをブラウザでエイリアス化してfs: "empty"メソッドを実行していましたが、そこにconsole.logを追加すると、ログがコンソールに出力されないことがわかります。
私が持っていたプラグイン(withSourceMaps、withSass、withOptimizedImages)のソースコードを掘り下げて、それぞれにconsole.logを追加すると、この連鎖方法では基本構成が外部プラグインに送信されていないことに気付きました(設定自体ですが、まだ何かがオフになっています):
module.exports = withBundleAnalyzer(
withSourceMaps(
withSass(
withOptimizedImages(baseConfig)
)
)
したがって、あなたのfs:「空」は決して尊重されません。
このために私が見つけた解決策は、next-compose-pluginsパッケージをインストールしてから、エクスポートを次のように変更することでした。
module.exports = withPlugins(
[
[withOptimizedImages],
[withSass],
[withSourceMaps],
[withBundleAnalyzer],
],
baseConfig
);
この行がある場合:
if (!isServer) { config.resolve.alias['@sentry/node'] = '@sentry/browser'; }
次に、
@sentry/browser
もインストールする必要があります。 エラーは少し誤解を招くです...
@vpontis 、これは私にはうまく
chainWebpack: (config) => {
config.resolve.alias['@sentry/node'] = '@sentry/browser'
}
誰かがまだ問題を抱えている場合に備えて追加したいと思います。
next-source-mapsを使用している場合は、 @zeit/next-source-maps
パッケージが0.0.4-canary.1
設定されていることを確認してください
next.config.jsも必要ありません。また、 next-source-maps
歩哨を使用していないため、解決策がわかりません。
if (process.env.NEXT_PUBLIC_SENTRY_DSN) {
Sentry.init({
enabled: true,
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
});
}
@sentry/node @sentry/browser @sentry/react
をインストールした後、 _app.js
に入れたものですが、それでもこのエラーが発生します。
@ zeit / next-source-maps ":" 0.0.4-canary.1も使い始めたら、これに遭遇しました。
これを修正するために、プラグインを削除してから、コードの重要な部分を次の構成に追加しました。
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
}
}
}
}
歩哨の問題ではありませんが、次のソースマッププラグインの問題です
最も参考になるコメント
@ 5tormTrooperこれが役立つかどうかは
const withSourceMaps = require('@zeit/next-source-maps')()