mirror of
https://github.com/nodejs/node.git
synced 2025-04-28 13:40:37 +00:00

Files in `node_modules` are not authored by the user directly and the original sources are less relevant to the user. Skipping source maps in `node_modules` improves the general performance. Add `module.setSourceMapsSupport(enabled, options)` to skip source maps in `node_modules` if it is needed. This moves all source maps related API to `node:module` and this a step to promote the source maps API to stable. PR-URL: https://github.com/nodejs/node/pull/56639 Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
// Flags: --enable-source-maps
|
|
|
|
'use strict';
|
|
require('../../../common');
|
|
const assert = require('node:assert');
|
|
const Module = require('node:module');
|
|
Error.stackTraceLimit = 5;
|
|
|
|
assert.deepStrictEqual(Module.getSourceMapsSupport(), {
|
|
__proto__: null,
|
|
enabled: true,
|
|
nodeModules: true,
|
|
generatedCode: true,
|
|
});
|
|
Module.setSourceMapsSupport(false);
|
|
assert.deepStrictEqual(Module.getSourceMapsSupport(), {
|
|
__proto__: null,
|
|
enabled: false,
|
|
nodeModules: false,
|
|
generatedCode: false,
|
|
});
|
|
assert.strictEqual(process.sourceMapsEnabled, false);
|
|
|
|
try {
|
|
require('../enclosing-call-site-min.js');
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
|
|
// Delete the CJS module cache and loading the module again with source maps
|
|
// support enabled programmatically.
|
|
delete require.cache[require
|
|
.resolve('../enclosing-call-site-min.js')];
|
|
Module.setSourceMapsSupport(true);
|
|
assert.deepStrictEqual(Module.getSourceMapsSupport(), {
|
|
__proto__: null,
|
|
enabled: true,
|
|
nodeModules: false,
|
|
generatedCode: false,
|
|
});
|
|
assert.strictEqual(process.sourceMapsEnabled, true);
|
|
|
|
try {
|
|
require('../enclosing-call-site-min.js');
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|