# 代码审查报告 **文件:** `data\demo-eslint\src\esm-demo.js` **语言:** javascript **耗时:** 64.7s **分析工具:** eslint --- 总计: 5 | 错误: 3 | 警告: 1 | 建议: 1 静态分析 · 3 个问题 - 🔴 `eslint:no-unused-vars` L7 第7行的 'reassignImport' 已定义但从未使用。 建议: 该函数未被调用,应删除;如果后续可能使用,请在代码中调用它。建议直接删除整个函数,避免死代码。 - 🔴 `eslint:no-import-assign` L8 第8行 'fs' 是只读的,不能为其赋值。 建议: import 导入的绑定是只读的,重新赋值会引发运行时错误。如果函数需要操作 fs,请使用另一个变量保存导入的对象;或删除该赋值语句。由于函数本身未使用,建议删除整个函数。 - 🔴 `eslint:no-undef` L11 第11行 'console' 未定义。 建议: console 在浏览器和 Node.js 中通常是全局对象,但 ESLint 环境未配置。请在 .eslintrc 中设置 env.node 或 env.browser,或在代码顶部添加 /* global console */ 注释。或者改用 globalThis.console.log(fs)。 AI 审查 · 2 条建议 - 🟡 [AI] [design] `dead-code-with-runtime-error` L7 **死代码中隐藏运行时错误** reassignImport 函数为 import 绑定 fs 赋值,在 ESM 中这是非法操作,一旦调用会立即抛出 TypeError。虽然当前函数未使用,但保留这种死代码会误导后续维护者,并可能被误调用导致崩溃。 建议: 删除整个函数 reassignImport,或将其重构为合法操作(例如读取 fs 的属性)。 - 🔵 [AI] [design] `module-top-level-side-effect` L11 **模块顶层执行 console.log 产生副作用** 第 11 行的 console.log 在模块被导入时立即执行。如果这是被复用的模块,会导致控制台输出,污染调用方,且难以测试。 建议: 将 console.log 移到函数内部或通过导出接口提供;若仅是调试用途,在提交前移除。