我们如何找到当前在 Node JS 项目中使用的已弃用方法的列表?
How can we find a list of deprecated methods that are currently in use in a Node JS project?
我想替换 Node JS 项目中某些第三方包中所有已弃用的方法,但找不到列出这些方法的简单方法。我搜索了 Node JS CLI 文档,但找不到执行此操作的确切命令。 Node JS CLI 中是否有一个命令可以实际执行此操作?或者是否有标准做法来替换第三方库中已弃用的方法?
Node.js 有 three types of deprecations: documentation-only, runtime, and end-of-life.
End-of-life 弃用很容易“找到”,因为它们基本上是已被删除的东西,当您尝试使用它们时会导致错误。
运行时弃用很容易找到,因为它们会发出警告,所以如果您有可用的日志记录,您就会看到它们。
Documentation-only 弃用不会出现,但如果您 运行 Node.js 与 --pending-deprecation
flag or the NODE_PENDING_DEPRECATION
environment variable设置。
运行 和 --trace-warnings
flag or the --trace-deprecation
flag 也是一个好主意(在我看来),这样您就可以获得弃用警告的堆栈跟踪,以便在您的依赖项等中轻松找到它们。
--pending-deprecation
的两个重要限制:
- 除非您尝试使用已弃用的 API,否则它不会找到它们。解析是不够的。 (拥有 100% 的测试覆盖率很有用。)
- 并非所有(甚至大多数)documentation-only API 都会发出带有
--pending-deprecation
的警告。然而,这会导致许多最重要的警告,所以在我看来这是完全值得的。
如果您希望始终收到未决弃用的通知并获得所有警告的堆栈跟踪,您可以在 .profile
或 .bashrc
或等效项中设置两个环境变量:
NODE_PENDING_DEPRECATION=1
NODE_OPTIONS=--trace-warnings
请注意,这会让您 运行 几乎所有的东西都变得嘈杂。甚至 npm
也会在几乎每次调用时开始打印警告。
我想替换 Node JS 项目中某些第三方包中所有已弃用的方法,但找不到列出这些方法的简单方法。我搜索了 Node JS CLI 文档,但找不到执行此操作的确切命令。 Node JS CLI 中是否有一个命令可以实际执行此操作?或者是否有标准做法来替换第三方库中已弃用的方法?
Node.js 有 three types of deprecations: documentation-only, runtime, and end-of-life.
End-of-life 弃用很容易“找到”,因为它们基本上是已被删除的东西,当您尝试使用它们时会导致错误。
运行时弃用很容易找到,因为它们会发出警告,所以如果您有可用的日志记录,您就会看到它们。
Documentation-only 弃用不会出现,但如果您 运行 Node.js 与 --pending-deprecation
flag or the NODE_PENDING_DEPRECATION
environment variable设置。
运行 和 --trace-warnings
flag or the --trace-deprecation
flag 也是一个好主意(在我看来),这样您就可以获得弃用警告的堆栈跟踪,以便在您的依赖项等中轻松找到它们。
--pending-deprecation
的两个重要限制:
- 除非您尝试使用已弃用的 API,否则它不会找到它们。解析是不够的。 (拥有 100% 的测试覆盖率很有用。)
- 并非所有(甚至大多数)documentation-only API 都会发出带有
--pending-deprecation
的警告。然而,这会导致许多最重要的警告,所以在我看来这是完全值得的。
如果您希望始终收到未决弃用的通知并获得所有警告的堆栈跟踪,您可以在 .profile
或 .bashrc
或等效项中设置两个环境变量:
NODE_PENDING_DEPRECATION=1
NODE_OPTIONS=--trace-warnings
请注意,这会让您 运行 几乎所有的东西都变得嘈杂。甚至 npm
也会在几乎每次调用时开始打印警告。