Skip to content

依赖解析与 node_modules

node_modules 是安装结果,不是依赖的唯一事实来源;package.json 声明允许范围,锁文件记录本次解析出的精确依赖图。

依赖类型

字段用途
dependencies运行时需要的依赖
devDependencies开发、测试、构建需要的依赖
peerDependencies由使用者提供的宿主依赖或兼容范围
optionalDependencies安装失败不阻断主安装的可选能力

解析要点

  • 内置模块优先;使用 node: 可避免歧义。
  • 相对路径从当前文件解析;包名从邻近的 node_modules 向上查找。
  • npm 会尽可能扁平化依赖;不能依赖未在自身 package.json 声明、却恰好被提升到顶层的“幽灵依赖”。
  • exports 存在时只能导入包显式公开的子路径。

不要手动编辑 node_modules。遇到依赖树问题使用 npm ls <package>npm explain <package> 或包管理器的等价命令检查来源。

基于 MIT 许可发布