Tired of the punycode deprecation message?
NullVoxPopuli

NullVoxPopuli @nullvoxpopuli

About: I like code.

Joined:
Sep 1, 2018

Tired of the punycode deprecation message?

Publish Date: Aug 6 '24
23 2

Are you tired of seeing this?:

[DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
     at node:punycode:3:9
     at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:399:7)
     at BuiltinModule.compileForPublicLoader (node:internal/bootstrap/realm:338:10)
     at loadBuiltinModule (node:internal/modules/helpers:96:7)
     at Module._load (node:internal/modules/cjs/loader:1070:17)
     at TracingChannel.traceSync  
     ...
Enter fullscreen mode Exit fullscreen mode

The "Solve"

Change your start or dev script in package.json to be prefixed with:

NODE_NO_WARNINGS=1
Enter fullscreen mode Exit fullscreen mode

For example,
if you previously had

"start": "vite"
Enter fullscreen mode Exit fullscreen mode

change it to

"start": "NODE_NO_WARNINGS=1 vite"
Enter fullscreen mode Exit fullscreen mode

Now you can enjoy console output with 80,000 less lines of spew.


If you are motivated and have the time, it is beneficial to try to help out packages by either:

  • upgrading them to a version that doesn't trigger the deprecation
  • PR a fix that doesn't trigger the deprecation (uses a userland module, as instructed).

The userland module is here: https://github.com/mathiasbynens/punycode.js

And you can scan all your dependencies for violations (so you don't have to rely on runtime to find every occurrance) with this tool: punycode-detector

npx punycode-detector
Enter fullscreen mode Exit fullscreen mode

or

pnpm dlx punycode-detector
Enter fullscreen mode Exit fullscreen mode


This also works for other tools

For example,
if you previously had

"start": "ember serve"
Enter fullscreen mode Exit fullscreen mode

change it to

"start": "NODE_NO_WARNINGS=1 ember serve"
Enter fullscreen mode Exit fullscreen mode

Comments 2 total

  • Jonathan Kratzke
    Jonathan KratzkeAug 16, 2024

    Ha! Thanks so much for this. I've been searching every couple of months for a "temp solution" to this as I can't upgrade certain packages yet, and this is the first time I've found someone who described a way to do it...admittedly, I should have just searched for stopping warnings in the first place, but thank you for combining it with this error.

  • Anthony Max
    Anthony MaxApr 6, 2025

    Lol, I accidentally saw the news in the feed on dev.to. I didn't even know that someone from benchmark was writing here

Add comment