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