按照VS Code官方教程开发helloworld扩展触发Buffer废弃警告如何解决
VS Code扩展开发DEP0005废弃告警解决方法
这个(node:xxx) [DEP0005] DeprecationWarning: Buffer() is deprecated告警并非你编写的HelloWorld扩展代码导致,是你使用的1.62.3版本VS Code内部依赖文件bootstrap-fork.js中使用了已废弃的Buffer()构造方法,属于编辑器本身的遗留问题。
注意:该告警和你本地安装的Node.js v17版本无关,VS Code扩展调试时使用的是编辑器内置的Node.js runtime,不会受本地Node版本影响。
解决方案
- 方案1:升级VS Code到最新稳定版
你当前使用的是2021年发布的1.62.3旧版本,VS Code官方后续版本已经修复了内部代码中的废弃Buffer调用逻辑,升级到最新稳定版后该告警会自动消失,是最彻底的解决方式。 - 方案2:临时隐藏废弃告警(暂不升级VS Code时使用)
在你的扩展项目.vscode/launch.json调试配置中添加环境变量即可关闭该类废弃告警提示,修改参考如下:
{ "version": "0.2.0", "configurations": [ { "name": "Extension", "type": "extensionHost", "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], // 新增env配置项 "env": { "NODE_OPTIONS": "--no-deprecation" } } ] }
修改完成后重启调试会话,告警就不会再弹出,不会影响正常的扩展开发调试流程。
- 方案3:排查自有代码(升级VS Code后仍告警时使用)
如果升级VS Code后仍出现该告警,全局搜索项目代码中是否存在直接调用Buffer()构造方法的逻辑,将其替换为官方推荐的安全写法即可:- 从已有数据创建Buffer:将
new Buffer(content)替换为Buffer.from(content) - 创建指定大小的空Buffer:将
new Buffer(size)替换为Buffer.alloc(size)
- 从已有数据创建Buffer:将
内容的提问来源于stack exchange,提问作者Kim Stacks
相关产品推荐
相关产品推荐

