在 Node.js ESM 中如何正确 import 一个 JSON 文件?
围绕“在 Node.js ESM 中如何正确 import 一个 JSON 文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 import attributes(with { type: 'json' })写法及其与 CJS require 直接加载 。
Node.js面试题第 3 页,显示第 101–150 题,共找到 217 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“在 Node.js ESM 中如何正确 import 一个 JSON 文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 import attributes(with { type: 'json' })写法及其与 CJS require 直接加载 。
围绕“import.meta.resolve 在 Node.js 中解决什么实际问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明它在不执行模块的情况下解析 specifier 为 URL 的用途与同步特性。
围绕“依赖包的 preinstall/postinstall 脚本为何是供应链攻击的常见入口,如何缓解”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明安装期脚本以用户权限执行任意代码的风险及 --ignore-scripts、CI 审查等缓解,不列举具体攻击事件。
围绕“package-lock.json 在可复现安装中起什么作用,为什么必须提交到仓库”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明锁定完整依赖树版本与 resolved 完整性信息的意义。
围绕“CommonJS 中 module.exports 与 exports 赋值有什么区别,为什么会踩坑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 exports 是 module.exports 的引用、直接重赋值会断开引用的机制。
围绕“require('lodash') 这类裸说明符在 Node.js 中的完整查找路径是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按官方算法讲清核心模块、文件/目录、node_modules 逐层上溯的优先级。
围绕“在 exports 中如何用嵌套条件表达「浏览器下用 ESM、Node 下用 CJS」这类组合”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出嵌套条件对象的合法结构与求值逻辑。
围绕“import 'fs' 与 import 'node:fs' 在 Node.js 中有实际区别吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 node: 前缀绕过 node_modules 同名包劫持的保证及哪些模块只能前缀加载。
围绕“npm audit 报告的漏洞应如何分级处置,audit fix --force 有什么风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按可利用性与依赖类型分级、--force 可能引入 semver major 破坏的风险。
围绕“CI 流水线中为什么应该用 npm ci 而不是 npm install”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 npm ci 严格按 lockfile 安装、删除 node_modules、不修改锁文件的差异。
围绕“node_modules 中为什么会出现同一包的多份副本,npm dedupe 如何减少重复”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释版本区间不兼容导致嵌套安装及 dedupe 重排提升的机制。
围绕“publish 前如何用 npm pack 与 files 字段控制实际发布的包内容”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 files 白名单、.npmignore 与 npm pack --dry-run 预览的组合用法。
围绕“npx 执行未安装包时的查找顺序是什么,为什么它可能被滥用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明本地 bin 优先、缺失时从 registry 下载执行的行为及包名仿冒风险。
围绕“optionalDependencies 安装失败时 npm 的行为与 dependencies 有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明失败不导致整体安装中止及代码侧需 try/catch require 的配合。
围绕“package.json 的 overrides 字段如何强制替换间接依赖的版本”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 overrides 针对特定包路径与全局替换的写法及与 resolutions 的生态对应。
围绕“package.json 的 exports 字段相比 main 多解决了什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清 exports 的子路径映射与封装未列出路径的能力。
围绕“exports 写成字符串和写成对象分别表示什么语义”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明字符串形式等价于 '.' 子路径映射的语法糖及与 main 的回退关系。
围绕“lockfile 中的 integrity 字段如何在安装时防止依赖被篡改”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 Subresource Integrity 哈希在校验 tarball 内容中的作用及 tamper 后的失败表现。
围绕“package.json 的 main 字段在模块解析中扮演什么角色,缺省时如何回退”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 main 的路径语义、缺省回退到 index.js 及与 exports 共存时 exports 优先的规则。
围绕“peerDependencies 在 npm 7+ 被自动安装后,插件包作者需要注意什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明自动安装带来的版本冲突报错行为及 peerDependenciesMeta.optional 的缓解。
围绕“删除 require.cache 后重新 require 能否真正热更新模块,有什么残留风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明缓存键是绝对路径、删除后旧导出对象仍被旧引用持有的风险。
围绕“require.extensions 为什么被官方标记为废弃,替代做法是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明其全局修改模块系统的副作用及推荐的编译前置或 hooks 替代。
围绕“一个包如何在自身代码里用包名引用自己的导出”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明自引用依赖 name 与 exports 同时存在且仅作用于包内部的限制。
围绕“package.json 中 ^1.2.3 与 ~1.2.3 实际允许安装到哪些版本”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须精确给出两者对 0.x 与 1.x 版本的不同边界行为。
围绕“package.json 的 imports 字段(# 前缀说明符)与 exports 有何分工”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 imports 仅对包内部生效、可映射到外部包的能力及与 exports 的解析隔离。
围绕“把包的 type 从 commonjs 改为 module 对下游用户有哪些破坏性影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须列举 .js 解释变化、require 失败(旧版本)、目录导入失效等影响。
围绕“如何防范 typosquatting 与 dependency confusion 两类依赖混淆攻击”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 scope 锁定私有 registry、.npmrc 隔离与名称拼写校验的具体措施。
围绕“在 Node.js ESM 中直接 import .wasm 文件需要满足什么条件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明需要 --experimental-wasm-modules 标志及顶层 await 的配合。
围绕“Node.js 中 Buffer 分配的内存归谁管理,为什么大量 Buffer 可能导致 RSS 高但堆不大”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Buffer 走 V8 堆外分配与回收时机,及对内存容量规划的影响。
围绕“Node.js 长驻服务中 setInterval 定时任务在模块重建或关闭时不清理会造成什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明重复注册导致任务叠加与内存增长,以及关闭路径统一清理的设计。
区分 HTTP 解析层 clientError、服务器 error 和业务异常,说明监听器接管连接清理、400 与 431、重复触发及原始报文日志边界,并给出受控原始连接测试方法。
围绕“Node.js 服务支持配置热更新时,哪些配置项可以安全热更、哪些必须重启进程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分运行期可变配置(阈值、开关)与启动期固化资源(端口、池大小)的边界。
围绕“在 Node.js 中为什么数据库访问必须使用连接池而不是每请求新建连接,池大小如何确定”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出建连成本与数据库承载上限两方面的权衡及池大小估算思路,不绑定具体某个池库 API。
围绕“Node.js 生产服务中大量使用 console.log 可能带来哪些性能问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 stdout 为管道/TTY 时的同步写行为与高并发下的阻塞风险。
围绕“Node.js 服务 CPU 飙高时,如何不重启进程通过 inspector 信号或 --cpu-prof 采集 C”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明采集入口(CLI 参数、SIGUSR1 触发 inspector)与火焰图分析思路。
围绕“Node.js 的 diagnostics_channel 模块如何用于在不侵入业务代码的情况下做请求链路埋点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 channel 发布/订阅模型及内置模块已埋点的利用方式。
围绕“Node.js 的 domain 模块为什么被废弃,现在用什么机制做请求级错误上下文传播”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 domain 的缺陷及 AsyncLocalStorage/AsyncHooks 作为替代的定位。
围绕“Node.js 服务的配置为什么推荐通过环境变量注入,如何用 process.env 做带校验与默认值的配置加载”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明配置与代码分离的理由及启动期 fail-fast 校验设计。
围绕“Node.js 的 MaxListenersExceededWarning 警告出现说明什么,真的是内存泄漏吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明默认 10 个监听器的提示性质与真正泄漏的甄别方法。
围绕“Node.js 如何度量事件循环延迟(event loop lag),该指标升高说明服务出了什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 setInterval 偏差或 monitorEventLoopDelay 的度量方式及升高的含义(同步阻塞/GC)。
围绕“Node.js 服务进程退出码(0/1 及 process.exitCode 与 process.exit())应该”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明设置 exitCode 让事件循环自然排空优于立即 exit()(避免截断异步写)。
围绕“在 Express 4 中如何为所有异步路由统一建立错误边界而不漏掉 Promise 拒绝”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出包装函数或路由层统一 catch 转 next(err) 的模式及漏包后果。
围绕“Express 的错误处理中间件为什么必须是四个参数,异步路由抛错为何不会自动进入它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按函数长度识别错误中间件及 Express 4 不捕获 Promise 拒绝的边界(注明版本)。
按停止接流量、排空请求、停止后台任务和关闭资源设计 Node.js 停机流程,说明 SIGTERM 监听责任、重复信号、长连接与硬截止时间,避免承诺无条件不丢请求。
围绕“Node.js 进程句柄(handle)泄漏导致无法退出,如何用 process._getActiveHandles”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明活动句柄/请求阻止事件循环退出的机制与定位手段。
围绕“Node.js 服务的 liveness 与 readiness 健康检查接口应该分别检查什么,为什么不能混用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分进程存活与可接流量(依赖就绪)的语义及失败时的不同后果。
围绕“Node.js 出站 HTTP 请求如何通过 http.Agent 的 keepAlive 与 maxSockets”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Agent 池化参数对下游服务并发的约束作用及默认值含义。
按响应后空闲、请求头接收和完整请求接收区分 Node.js HTTP 超时,解释代理连接池复用竞态及 keepAliveTimeoutBuffer 的版本边界,给出逐跳排查与验证方法。
围绕“Node.js 实现静态资源服务时如何正确响应 Range 请求头(206/416)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 Range 解析、206 与 416 状态及对应头部设置规则。
解释请求体应在读取时累计真实字节,区分 Content-Length 提前拒绝、分块传输、UTF-8 字节数和解压上限,提供可测试预算函数,并说明 413 与 socket 关闭的协调。