Description
Is your feature request related to a problem? Please describe.
I'd like to suppress experimental warnings while still seeing any other errors. In particular when I am using native ES modules I do not want the experimental warning printed for every process, but I do want unrelated warnings to still be printed.
Describe the solution you'd like
Allow --no-warnings
to optionally accept an option string such as --no-warnings=type1,type2
. Using --no-warnings
without any option would continue to disable all warnings. This would allow --no-warnings=ExperimentalWarning
to suppress ExperimentalWarning only.
Describe alternatives you've considered
--no-experimental-warnings
or a similarly named new flag could be created. This has the drawback that node --no-experimental-warnings
on node.js 13.3.0 exit with an error where --no-warnings=ExperimentalWarnings
will not currently error (it causes all warnings to be ignored).
In my own repo which uses ES modules I've created suppress-experimental.cjs
which gets loaded with NODE_OPTIONS='--require=./suppress-experimental.cjs'
:
'use strict';
const {emitWarning} = process;
process.emitWarning = (warning, ...args) => {
if (args[0] === 'ExperimentalWarning') {
return;
}
if (args[0] && typeof args[0] === 'object' && args[0].type === 'ExperimentalWarning') {
return;
}
return emitWarning(warning, ...args);
};
Obviously patching node.js internals like this is undesirable but it accomplishes my goal.