Open futuremotiondev opened 1 week ago
You can use node --no-deprecation
or export NODE_OPTIONS="--no-deprecation"
.
Or disable require('esm')
with --no-experimental-require-module
You can use
node --no-deprecation
orexport NODE_OPTIONS="--no-deprecation"
.
How can I do this globally though?
export NODE_OPTIONS="--no-deprecation"
in console just gives me
export: The term 'export' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Am I missing something?
I also created a machine-wide environment variable called NODE_OPTIONS
and set its value to --no-deprecation
. I'm still getting the ExperimentalWarning. It's even happening when I run npm list -g --depth=0
.
And yes I tried restarting the console so the environment variable gets refreshed, but still the same output.
EDIT: Printing $env:NODE_OPTIONS
in PowerShell after restarting my host and console outputs a blank line instead of my set value of --no-deprecation
I don't know much about Windows, sorry.
This feature is experimental, so it emits a warning. IMHO this is working as intended.
If npm is using an experimental feature, it should be their responsibility to figure out how to handle the warning
I believe he is asking for a way to not showing the warning. https://nodejs.org/api/cli.html#--disable-warningcode-or-type
node --disable-warning=ExperimentalWarning
Having same error. Partly resolved in local terminal by removing and installing node and npm. Now when running from local terminal no error message. Else this was throwing whenever I was using npm like npm install, npm start etc.
Also installed tsx and recommended in search. So that works without error.
But when using skaffold dev it getst stuck at the following two lines
node --trace-warnings ...
to show where the warning was created)In my case it is not moving further and fails when press Ctrl+C after waiting... So it not just warning. It hangs out so issue is critical to me. Wondering how it was working all good till. In last three days, this issue props up.
Lot of googling but no luck.
@RedYetiDev
This feature is experimental, so it emits a warning. IMHO this is working as intended.
If npm is using an experimental feature, it should be their responsibility to figure out how to handle the warning
npm@10.9.0
is not intending to use any experimental feature. The warning impacts basic usage of npm so it is going to have widespread impact.For example, even with no npm modules installed, executing npm view npm version
results in the ExperimentalWarning
:
$ npm view npm version
(node:5212) ExperimentalWarning: Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
10.9.0
Many other often-used npm cli commands also provoke the warning:
npm audit
npm ci
npm doctor
npm init
npm install
npm install-ci-test
npm ls
npm outdated
npm prune
npm repo
npm show
... etc
My point is, I don't believe this is a bug in the Node.js project. In npm–perhaps, however, on this side of the ecosystem, at least how I see it, the feature should, by default, emit a warning.
23.x
. I tried enabling --trace-warnings
, however that didn't pin-point the source for me.The warning from npm
10.9.0
under Node.js v23.0.0
comes from the use of the ESM version of supports-color
>= 9.0.0
by npm
with debug
using require()
to test if supports-color
is available.
See the following for more details:
as @climba03003 mentioned in https://github.com/nodejs/node/issues/55417#issuecomment-2422082038 - for the end users, if they want to supress the warning, they could use
node --disable-warning=ExperimentalWarning entry.js
Or if it's run by an executable that's not node
itself, use the NODE_OPTIONS=--disable-warning=ExperimentalWarning
environment variable.
For a package that does require(esm)
either on purpose or for fallback, maybe we can add a toggle to e.g. process to disable it temporarily, similar to process.noDeprecation
. Though I am a bit worried about how much good it does if abused. Also the warning is mostly for v23. For v22 we will supress warnings from code within node_modules and v24 will probably not have the warning as it should be stable by then.
What is the problem this feature will solve?
I use NVM for Windows.
nvm install 23.0.0
v23.0.0
gets installed.nvm use 23.0.0
npm install npm@latest -g
The latest npm gets installed, but I also get the following output pollution:
npm install svgo -g
, I get the sameExperimentalWarning
pollution.Is there any way I can suppress this message by default while still leaving the new default require(esm) setting enabled? I don't want to see this warning every time I install a global package, especially since I am automating things.
This doesn't happen with any node versions prior to 23.0.0.
Appreciate any consideration.
What is the feature you are proposing to solve the problem?
A global configuration setting to suppress this new warning every time I install a global module in v23.0.0:
What alternatives have you considered?
Nothing yet.