glifyJS を使用してソースを縮小およびUglifyし、 Sentry を使用して実稼働環境からエラーを報告しています。
Sentryからエラーを取得するには、読みやすい方法で、source-mapを追加する必要があります
本番サーバーで実行しても安全ですか、またはソースマップファイルはステージング環境にのみ存在する必要がありますか?
本番環境でそれらを保護する方法はありますか?
これの可能な解決策を探して、誰かがSentryを特に使用していない場合、私はこのブログ投稿(皮肉なことにSentryブログ投稿)に行きました:
https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html
興味深いアイデアがある場合:「プライベートソースマップ」。これは、インターネットからアクセスできない場所(会社のVPNなど)でソースマップを生成することを意味するため、ソースマップファイルにアクセスできるのはユーザーまたはチームだけです。
投稿の "Private Source Maps"セクションの引用:
[...]すべての例は、ソースマップが公開されており、実行中のJavaScriptコードと同じサーバーから提供されることを前提としています。その場合、すべての開発者はそれらを使用して元のソースコードを取得できます。
これを防ぐには、公開アクセス可能なsourceMappingURLを提供する代わりに、開発チームのみがアクセスできるサーバーからソースマップを提供できます。たとえば、会社のVPNからのみ到達可能なサーバー。
//#sourceMappingURL: http://company.intranet/app/static/app.min.js.map
開発者ツールを開いた状態でチーム以外のメンバーがアプリケーションにアクセスすると、このソースマップをダウンロードしようとしますが、404(または403)HTTPエラーが発生し、ソースマップは適用されません。
私には良いアイデアのようです!
主な懸念事項は、「ユーザーが私のソースコードを持っているかどうか」です。ユーザーはとにかく物を難読化解除できるため、通常は問題ありません。
つまり、Sentryを使用している場合は、実際に releases API を使用してこの問題を回避できます。それでもアーティファクトを生成し、URL(またはAPIが処理できるもの)を設定する必要がありますが、それらをインターネットに公開する必要はありません。