узел - как использовать исходную карту с nyc и mocha

Итак, 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)

Я не уверен, как использовать исходную карту, чтобы разобраться с этим. Документы утверждают:

Точные трассировки стека с использованием исходных карт.

Если для параметра output-source-map установлено значение true, то инструментальные исходные файлы будут включать встроенные исходные карты для преобразования инструментария. В сочетании с 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
}

но линия все еще искажена.

Ответ 1

основное предварительное условие для его работы будет (как описано здесь):

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.

и документация объясняет, как их использовать:

Использование CLI

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

Программное использование

Поместите следующую строку вверху скомпилированного файла.

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

Можно также определить сопоставление имен файлов, добавив комментарии:

//# sourceMappingURL=filename.js.map