我是 Web 开发领域的新手,刚刚完成 Jonas Schmedtmann 的 JS 课程。
但是,在我想做的第一个项目中,我遇到了以下错误并且无法解决。
我运行parcel并开始编写一行javascript测试代码后,编写的第一行代码出现在控制台中,但随后出现了问题。
在控制台中编写另一段代码后,仍然出现以下消息:“console.clear() 由于‘保留日志’而被阻止”,它前面有一个类似于数字的指示符。
当我向控制台添加内容时,控制台会因此消息而冻结,该消息仅更新其前面的数字(数字从 2 增加到 2)。
当我单击错误时,它会将我带到源表,其中指示错误位于以下代码中:
// 处理 HMR 更新 让处理=资产.每个(资产=> { 返回 asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle); }); 如果(已处理){ console.clear();
即使我在浏览器中选中了保留日志功能,也会出现该错误,但如果未选中它,也会出现该错误。
提前谢谢您!
我在浏览器中选中并取消选中了 Preserver log 选项,但问题仍然存在。
您似乎在项目设置中遇到了热模块替换 (HMR) 问题。您看到的错误与尝试使用
console.clear()
清除控制台有关。
以下是一些排查和解决问题的建议:
检查浏览器控制台设置: 确保您没有任何可能干扰 HMR 的断点或日志。有时,代码中存在断点可能会导致问题。另外,请确保您的浏览器控制台设置不会阻止控制台清除。
更新包裹: 确保您使用的是最新版本的 Parcel。您可以通过在项目目录中运行以下命令来更新 Parcel:
npm install -g parcel-bundler
检查依赖关系: 确保您的所有项目依赖项都是最新的。您可以通过运行来做到这一点:
npm update
检查您的 JavaScript 代码: 检查您编写的 JavaScript 代码。确保不存在可能导致意外行为的语法错误或逻辑问题。
禁用控制台清除: 如果问题仍然存在,您可以尝试从 Parcel 源中的 HMR 处理代码中注释掉或删除
console.clear();
行。这是一种临时解决方法,从长远来看可能不是推荐的解决方案。
找到如下所示的代码块:
if (handled) { console.clear(); }
并注释掉或删除
console.clear();
行:
if (handled) { // console.clear(); }
检查浏览器扩展: 有时,浏览器扩展可能会干扰 Web 开发工具。尝试逐一禁用浏览器扩展程序,看看是否有任何扩展程序导致了问题。
浏览器兼容性: 确保您使用的浏览器受到 Parcel for HMR 的良好支持。流行的选择包括 Google Chrome 和 Mozilla Firefox。
尝试这些步骤后,如果问题仍然存在,您可能需要查找与您的 Parcel 版本和您所工作的环境相关的特定信息。检查 Parcel GitHub 存储库或社区论坛以获取任何报告的问题或更新。