DeprecationWarning:“punycode”模块已弃用

Mar*_*ngs 7 punycode mongoose userland deprecation-warning

vs code 终端显示弃用警告 (节点:22063)[DEP0040] DeprecationWarning:该punycode模块已弃用。请改用用户态替代方案。(用于node --trace-deprecation ...显示警告的创建位置)

这就是问题所在。我的操作系统是 ubuntu 22.04。当我尝试将数据库与猫鼬一起使用时,问题就出现了。punycode 可以在我的 package-lock.json 文件中的某个位置看到。我自己没用过,是node自带的。

我的节点版本是 v21.0.0 ,我将其降级为 v20.9.0 然后 v18.18.0 仍然有警告。我安装了用户层模块但没有任何反应。

我理解的问题是 punycode 已被弃用,需要使用用户态替代 punycode.js 。但我不知道如何使其成为可能。

sol*_*dos 1

这就是我解决此弃用警告的方法:

\n

Here\xe2\x80\x99s 可能有帮助的解决方法:

\n
    \n
  1. 转到您的node_modules目录。

    \n
  2. \n
  3. 找到tr46目录。

    \n
  4. \n
  5. 打开tr46中的index.js文件文件。

    \n
  6. \n
  7. 将当前的 require 行替换为以下行:

    \n

    const punycode = require('punycode/');

    \n
  8. \n
\n

但如果您重新安装 npm 软件包或更新它们,此更正将会丢失。然而,警告消失了。

\n

PS:\n以防万一,我使用节点 v21.5.0

\n