Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Handle Syntax Error

Offen
#264 0 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
javascript, node.js

Rechercherichtung

Beginne damit, den SyntaxError in der generierten Datei zu reproduzieren, und untersuche, wie node-source-map-support derzeit error.stack für gewöhnliche Ausnahmen verarbeitet. Verfolge die erste Stack-Zeile, die den generierten Ort enthält, und überprüfe anschließend, dass SyntaxError-Orte auf den ursprünglichen Quellcode aufgelöst werden, ohne die bestehende Ausnahmebehandlung zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

First of all thank you for providing this project! It's a great help for my current project.

Regarding this issue: I would like to request that a special case be added that handles syntax errors so that the place of the original source is displayed when there is a syntax error in the generated file.

This is not very useful for projects like coffescript, typescript… which feature their own parsers (and thus do their own syntax error reporting); however it is useful for a use case like mine in which I just copy/past js source from one file into another where the input is not strictly tested for validity.

(I am building a tool that extracts examples from documentation and executes them as tests).

E.g. my errors are correctly resolved for normal exceptions, however when an (induced) syntax error happened, the output pasted below was the output. In there you can see the syntax error indicating the location in the generated file.

This could be solved by adding a special handler for syntax errors; extracting the generated location from the first line of error.stack…

/tmp/ferrum.doctest-ferrum.doctest-6d12dfba-331b-478f-94bf-862f4569da6/examples.test.js:10                                                  [158/14653]
    const foo = 42;
    ^^^^^

SyntaxError: Unexpected token 'const'
    at wrapSafe (internal/modules/cjs/loader.js:1050:16)
    at Module._compile (internal/modules/cjs/loader.js:1098:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:983:32)
    at Function.Module._load (internal/modules/cjs/loader.js:891:14)
    at Module.require (internal/modules/cjs/loader.js:1023:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at /home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/mocha.js:334:36
    at Array.forEach (<anonymous>)
    at Mocha.loadFiles (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/mocha.js:331:14)
    at Mocha.run (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/mocha.js:809:10)
    at Object.exports.singleRun (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/cli/run-helpers.js:108:16)
    at exports.runMocha (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/cli/run-helpers.js:142:13)
    at Object.exports.handler (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/lib/cli/run.js:292:3)
    at Object.runCommand (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/node_modules/yargs/lib/command.js:242:26)
    at Object.parseArgs [as _parseArgs] (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/node_modules/yargs/yargs.js:1087:28)
    at Object.parse (/home/karo/pr0j/adobe/ferrum.doctest/node_modules/mocha/node_modules/yargs/yargs.js:566:25)
Vorherrschende Sprache
JavaScript
Sterne
2.2k
Forks
221
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus evanw/node-source-map-support

Alle Issues in evanw/node-source-map-support

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.