узел - как использовать исходную карту с 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