ts-node
ts-node copied to clipboard
`--doctor` option logs advice to help with project configuration
Desired Behavior
When invoked with new --doctor / "doctor" / TS_NODE_DOCTOR option, will eagerly log verbose advice about project configuration.
For example, if using a "target" option that is (partially) incompatible with your node version, will log a block of text warning about the incompatibilities.
Can also register an error handler that augments recognized errors with additional help text. For example, can detect when errors may be fixed by --files
Can propose moving options into tsconfig file.
Can detect unrecognized tsconfig.ts-node options.
Can detect unrecognized CLI flags.
Can point out when files are being loaded as ESM and you're not using the ESM loader.
Is this request related to a problem?
User confusion. I wonder if something like this can help.
Alternatives
More docs
Could we combine this with the existing logging, perhaps have --doctor enable a subset of log messages?
The debug module supports wildcard matching of a DEBUG environment variable, so you can create namespaced categories of logging. For example
DEBUG=ts-node:* ts-node ./index.ts # enables all ts-node debug logging
DEBUG=* ts-node ./index.ts # enables all debug logging for all libraries that use the debug module
DEBUG=ts-node:doctor ts-node ./index.ts # enables only "doctor" logs
Could we do something similar, perhaps backwards-compatible with our current TS_NODE_DEBUG env var?
DEBUG=ts-node:warn-suggestions ts-node ./index.ts # enable all debug messages that warn and suggest configuration fixes
Dunno why I said the advice was unsolicited. :)