首页/对照列表/NPM 常用命令

NPM 备忘单

节点包管理器命令参考 (npm/yarn/pnpm)

$npm init
Create a package.json file
$npm install
Install all dependencies in package.json
$npm install <pkg>
Install a package
$npm install -D <pkg>
Install a package as an devDependency
$npm install -g <pkg>
Install a package globally
$npm update
Update packages
$npm uninstall <pkg>
Remove a package
$npm run <script>
Run a script defined in package.json
$npm cache clean --force
Clear npm cache
$npm list
List installed packages
$yarn add <pkg>
Add a package with yarn
$yarn remove <pkg>
Remove a package with yarn
$pnpm add <pkg>
Add a package with pnpm

功能简介

NPM 常用命令

NPM 核心命令终极速查。系统整理从安装卸载到版本审计 (Audit)、配置镜像源的所有生产脚本指令,是每个 Frontend 攻城狮的包管理圣经。

如何使用

1. 按开发场景浏览对应指令;2. 参考针对淘宝镜像 (nrm) 的一键优化配置;3. 快速查找 package.json 属性常考含义。

安全保障

纯文档参考词库。我们不扫描您的项目 package.json 文件,不干扰您的本地工具链状态。

100% Client Side
📘 使用指南与技术说明

痛点引入

作为前端开发者,你是否经常在终端里反复敲打 npm install 却记不清各种参数?或者面对复杂的依赖关系时,手忙脚乱地搜索命令?没有一份靠谱的速查表,就像摸鱼时找不到零食——效率直接掉线!每次发布包都要翻文档,调试脚本时参数搞错,这些踩坑经历简直让人头大。

核心功能深度解析

NPM 命令看似简单,背后却藏着不少技术逻辑。比如 npm install 的依赖解析采用递归算法,确保所有子依赖版本兼容;npm publish 遵循 SemVer 语义化版本规范,通过正则表达式验证版本号格式;npm run 脚本执行基于 Node.js 的 child_process 模块,支持环境变量注入。这些机制保证了包管理的稳定性和一致性,避免因手动操作引发的“依赖地狱”。

行业应用场景

  • 联调环境:团队协作时,使用 npm ci 快速安装依赖,确保环境一致,避免“在我机器上好好的”尴尬。
  • 测试环境:通过 npm test 运行测试脚本,结合 --coverage 参数生成覆盖率报告,提升代码质量。
  • 生产环境:利用 npm run build 打包项目,配合 --production 标志只安装生产依赖,优化部署效率。

FAQ 常见问题

  1. npm installnpm ci 有什么区别? npm install 会更新 package-lock.json,适合日常开发;npm ci 严格依赖 lock 文件,适合自动化部署,速度更快但不可修改依赖。

  2. 如何发布一个私有包到 NPM 仓库? 先在 package.json 中设置 "private": true,然后使用 npm publish --access restricted,确保包不被公开。

  3. npm run 脚本能传递参数吗? 可以!例如 npm run dev -- --port=3000,双破折号后的参数会传递给底层脚本。

  4. 依赖冲突时怎么解决? 使用 npm ls 查看依赖树,定位冲突包,然后通过 npm dedupe 或手动调整版本号解决。

  5. 如何加速 NPM 安装? 切换国内镜像如淘宝源:npm config set registry https://registry.npmmirror.com,或使用 npx 避免全局安装。

技术科普/延伸阅读

NPM 的依赖管理基于 RFC 2119 规范,定义了“必须”、“应该”等关键词在标准中的含义。有趣的是,尽管 NPM 生态庞大,但循环依赖问题仍是未解之谜——工具能检测却无法自动修复,全靠开发者手动优化。想深入的话,可以研究一下 Node.js 的模块加载机制,它能帮你理解 require()import 背后的故事。

📖 精选技术文章推荐

那些藏在 URL 里的双重编码漏洞:一次 SQL 注入的完整路径

明明部署了昂贵的 WAF 防火墙,为什么数据库还是被拖库了?黑客并没有使用什么零日漏洞,而是巧妙地利用了 URL 的“双重编码”特性。本文将带你重构一次真实的攻击路径,揭示架构分层中的安全盲区,以及开发者最容易犯的致命错误。

那个把对象直接 toString 传进 URL 的同事,把我们的接口搞崩了

一个前端新人的失误:'?filter=[object Object]',让后端的 JSON.parse 直接崩溃,引发了一场 P3 级事故。本文深入探讨 JSON 与 GET 参数互转的种种陷阱:嵌套对象怎么传?数组怎么解析?URL 长度限制在哪里?以及如何避开这些暗坑。

计算机差点变成巴别塔:Unicode 发明前,我们如何处理多语言文字

在 UTF-8 统治世界之前,计算机世界曾是一片混乱的割据地。为了显示中文、日文或希腊文,开发者们发明了无数互不兼容的“代码页”。本文带你回顾那段满是乱码、冲突与妥协的编码演进史,理解 Unicode 存在的终极意义。

消失的字符:处理民族文字展示时的编码与渲染深坑

在开发文本分析工具时,我们发现 UTF-8 并不是万能药。当遇到藏文的叠加字、维吾尔文的 RTL 镜像渲染以及复杂的 Unicode 代理对时,传统的字符串处理逻辑会瞬间失效。本文记录 daima.life 在适配多元文字时的技术复盘。

💡 想要更多功能?

发现 Bug 或是希望加入新工具?支持免费提建议或商业私有化定制开发