问题描述
**编辑标签以反映问题的原因
我已经使用 Node.js 工作了大约 3 个月的时间,今天我在做一个项目时突然在客户端出现导入错误,即使我没有触及那里的任何代码自从我上次运行该程序以来。事实上,我所做的唯一更改是在服务器端,只是一些与导入无关的小重构。在疯狂地寻找我做了什么之后,我向上滚动以在 server/index.js 中看到这一行:
const { default: socket } = require('../client/src/socket.js');
这行不是我写的。它是在我没有询问甚至没有注意到它在那里的情况下添加的。我很确定我没有点击任何格式工具提示,它似乎无处不在,是导致中断的原因。
这不是我第一次遇到这种情况。我注意到偶尔会向我的项目中添加我从未要求过的代码。所以我有一些问题:
- 这是 Node 的一个特性吗?如果是,是什么触发了它?
- 当我使用 VScode 时,是不是 IDE 正在执行此操作?
- 我如何阻止导致此问题的尝试和失败,以提供帮助?
谢谢。
解决方法
这不是 Node 的特性,但是一些 VSCode 扩展具有自动导入的功能。也许您的一个扩展程序添加了该行。为了防止它禁用您的 JavaScript 自动完成功能,linter 扩展。
,这很可能是 VSCode 的内置 auto-imports。您可能输入了 socket
并选择了一个自动建议,其中包含Auto import from "../client/src/socket.js"
您可以使用设置 "javascript.suggest.autoImports": false
禁用它。
此外,如果您使用 Git 进行版本控制,请尝试使用 git add -p
(-p
for patch) 来一点一点地暂存您的更改,而不是整个文件。通过这种方式,您可以查看切片中的更改,并且您可能会发现这样的事情。