web-dev-qa-db-ja.com

node-nycとmochaでsource-mapを使用する方法

したがって、nycは次のようにファイルを変換します。

  at _onCreate (src/post/admin.js:1:10453)
  at doQuery (src/db.js:59:216)
  at process._tickCallback (internal/process/next_tick.js:68:7)

ソースマップを使用してこれを分解する方法がわかりません。ドキュメントの状態:

source-mapsを使用した正確なスタックトレース。

produce-source-mapがtrueに設定されている場合、インストルメントされたソースファイルには、instrumenter変換のインラインソースマップが含まれます。source-map-supportと組み合わせると、インストルメントされたコードのスタックトレースは元の行を反映します。

だから私は次のnpm runコマンドを試しました:

"NODE_ENV=test nyc mocha --require ./tests/setup.js --require source-map-support/register --produce-source-map true --bail ./tests/unit/$FILE"

nyc設定と組み合わせる:

"nyc": {
    "include": [
        "src"
    ],
    "exclude": [
        "./tmp/**/*",
        "./tests"
    ],
    "instrument": true,
    "report-dir": "./tests/coverage",
    "temp-dir": "./tests/temp",
    "source-map": true,
    "produce-source-map": true
}

しかし、ラインはまだ壊れています。

12
A. Lau

それが機能するための基本的な前提条件は次のようになります(説明されているように here ):

npm install --save-dev source-map-support

nyc^10.3.2であることを確認してください(10.3.0が壊れていました)。

"devDependencies": {
    ...
    "mocha": "^3.3.0",
    "nyc": "^10.3.2",
    "source-map-support": "^0.4.15",
}

nyc構成は"sourceMap": true, "produce-source-map": trueである必要があります。

そして documentation はそれらの使い方を説明しています:

CLIの使用法

node -r source-map-support/register compiled.js

プログラムによる使用

コンパイルしたファイルの先頭に次の行を置きます。

require('source-map-support').install();

コメントを追加して、マッピングファイル名を定義することもできます。

//# sourceMappingURL=filename.js.map
9
Martin Zeitler