Migrate source-map-support to Node.js native source maps
ProprietaryReplaces the source-map-support package with Node.js's built-in source map support. Where Node is launched from package.json scripts or mocha/ava configuration, source-map-support/register becomes the --enable-source-maps flag; in code, install() and register imports become process.setSourceMapsEnabled(true) where that maps everything the module loads. Where it would not — in an ES module every import is evaluated before any statement runs — the flag goes on the launcher instead, in the package's bin shebang or a node script, and the entry point is removed as redundant. What Node has no equivalent for — install() with a custom retrieveSourceMap or retrieveFile, and wrapCallSite, getErrorSource, mapSourcePosition, retrieveSourceMap and resetRetrieveHandlers — is written into the file that uses it, on Node's own SourceMap, and an install() configured for a browser is removed. The dependency is removed from each package.json that declares it, with the lock file updated to match. Anything left in place, such as a webpack banner, is recorded in the SourceMapSupportManualMigrationSteps data table with a suggested replacement, and has to be migrated before building, since the dependency is removed regardless.
org. openrewrite. node. migrate. source-map-support. migrate-source-map-support-to-nativemod run . --recipe= org. openrewrite. node. migrate. source-map-support. migrate-source-map-support-to-nativeInstall it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.
Recipe list
It runs these recipes, in this order.
- Replace
source-map-support/registerwith--enable-source-mapsinpackage.json - Replace
source-map-support/registerwithenable-source-mapsin mocha config - Replace
source-map-supportwithprocess.setSourceMapsEnabled() - Replace source-map-support's API with functions written into the file
- Enable native source maps at launch and drop
source-map-support - Find source-map-support usages that need manual migration
- Remove the
source-map-supportdependency