1

例外スタック トレース用に独自のフォーマットを実装したいと考えていますが、Error.prepareStackTraceそれが魅力的に機能することを認識しています。

coffee中間の *.js 結果とそのソースマップ ファイルを保存せずに、経由でプログラムを実行して coffee-script を使用しているときに問題が発生します。コンパイルされた .js からではなく、.coffee ファイルから正しい行番号を表示したい

require を介して実行時に動的にロードされるファイルについて、coffee-script の内部ランタイム ソースマップにアクセスする (または同じ値を取得する) ことは可能ですか? sourceMaps = {}内部に coffee-script コンパイラ自体が使用するローカル変数があることは知ってcoffee-script.coffeeいますが、モジュール クロージャの外ではアクセスできません。

何か案が?

4

2 に答える 2

0

はい、require "source-map" 経由で sourceMap を使用できます。

そして、変換するために、stackTrace で filePath、行、および列の情報を取得する必要があります。

Kevin は、coffeestack ライブラリを作成しました。

npm install coffeestack

使用法:

{convertStackTrace} = require 'coffeestack'

try
  throw new Error('this is an error')
catch error
  console.error(convertStackTrace(error.stack))

詳細については、CoffeeStackパッケージを参照してください。

于 2014-12-23T00:42:50.283 に答える