npm
npm(Node Package Manager)是JavaScript生态系统中广泛使用的包管理工具,随Node.js一同发布。它提供命令行界面,用于安装、发布、更新和卸载JavaScript软件包,并自动处理项目依赖关系与版本管理。npm同时指其配套的在线软件仓库npm Registry,开发者可通过该平台共享和复用开源代码模块,是现代前端与Node.js后端开发的基础工具之一。
核心事实
时间轴 (近 90 天)
结合 Changesets 等工具,CI 系统在合并 PR 后可自动汇总 Changelog、更新版本号并发布至 npm
只有上层依赖包同步发布更新,最终用户才能通过 npm update 命令获得上游底层包的修复
供应链投毒可通过在公开 npm/PyPI 包的描述字段中嵌入提示注入指令或向开源仓库提交含恶意注释的 Pull Request 来污染 Agent 自动消费的上游资源
从 npm 源安装的插件现在会以 npm pack --ignore-scripts 方式获取并进行完整性校验,包的安装脚本不再自动运行
npm在Node生态成型数年后才成为不可或缺的基础设施,PyPI之于Python亦然,可复用模块的分发基础设施往往在生态成熟期才真正爆发
可用命令 npm config set prefix 和 npm config set cache 分别设置 npm 的全局目录和缓存目录
DeepSeek Harness 这类智能体框架通常以 npm 包的形式分发,其依赖项通过 npm 自动拉取
npm 缓存目录保存已下载包的本地副本,下次安装相同版本时可直接读取缓存而无需重新联网下载
npm 的 prefix 和 cache 配置信息存储在用户目录下的 .npmrc 文件中,删除该文件可恢复默认值
升级到 3.0.2 通常只需更新依赖版本,可通过 npm install 或 pnpm add 安装
还有 40 条时间轴事件
全部知识事实 (20)
Claude Code通过npm全局安装,安装命令为npm install -g @anthropic-ai/claude-code
80%已验证Claude Code 通过 npm 全局安装,命令为 npm install -g @anthropic-ai/claude-code
80%已验证npx是npm 5.2+内置的包执行工具,允许开发者无需全局安装即可直接运行任意npm包
75%已验证Node.js 是基于 Chrome V8 引擎构建的 JavaScript 运行时,npm 目前托管超过 200 万个开源包
65%已验证Windows用户安装Claude Code需要先安装Node.js和NPM
65%已验证2016年的left-pad事件中,一个仅有11行代码的npm包被作者撤回,导致React、Babel等主流项目的构建管线中断数小时
65%已验证2021 年 npm 包 ua-parser-js(周下载量超过 700 万次)被原作者账号劫持后植入加密货币挖矿程序
65%待验证Claude Code通过npm安装,基于Claude Sonnet/Opus模型运行
90%待验证Claude Code以npm包形式分发,代码在技术上可被反编译和审查
85%待验证macOS上npm全局安装的包通常位于/usr/local/lib/node_modules或通过nvm管理的~/.nvm目录下,Windows则在%AppData%/npm/node_modules路径中
85%待验证npm注册表中有超过200万个包
80%待验证npm注册表托管了超过200万个包,PyPI有超过50万个项目
75%部分验证npm(Node Package Manager)是Node.js附带的包管理器,用于下载和管理项目所需的第三方代码库
70%待验证npm、PyPI、RubyGems等公共包仓库普遍采用开放注册机制
60%待验证npm的lifecycle脚本(preinstall、install、postinstall)会在npm install时自动执行,是供应链攻击最常被滥用的技术特性之一
60%待验证Claude Code 基于 Node.js 生态分发,通过 npm 以全局包的形式安装到本地系统
60%待验证每次通过npm update更新Claude Code时,之前的汉化修改会被新版本文件覆盖,需要重新执行汉化指令
60%待验证Claude Code通过npm全局安装,其核心代码以JavaScript/TypeScript编译后的形式存储在node_modules目录下
60%待验证npm拥有超过200万个包
60%待验证npm生态拥有超过200万个包
60%