Home
img of docs

介绍 Node.js 环境中常用的命令,帮助开发者高效使用 Node.js 进行开发、调试和管理项目。

chou403

/ Node

/ c:

/ u:

/ 4 min read


一学一个不吱声

npm dedupe 命令简介

功能

npm dedupe 是用于优化项目依赖树的命令。它通过检查 node_modules 中的依赖项,尝试将重复的依赖项合并到项目的根级别,减少冗余和磁盘占用。

运行逻辑

  • 如果多个包依赖相同的库(但可能是不同版本),npm dedupe 会尝试找到一个共同版本,并将其提取到根级别。
  • 这样可以减少 node_modules 的深度和大小,同时保持依赖关系的正确性。

使用示例

  1. 假设项目依赖如下:

       ├── [email protected]
    │   └── [email protected]
    ├── [email protected]
    │   └── [email protected]
  2. 运行 npm dedupe 后,lodash 将被提取到根级别:

注意事项

  • 仅当依赖版本可以安全合并时才会发生优化。如果版本之间有重大不兼容,npm dedupe 不会强制合并。
  • 此操作不会更改 package.json 文件,仅影响 node_modules

其他常用的 npm 命令

1. 安装相关命令

  • npm install / npm i 安装项目依赖,并根据 package.json 文件生成 node_modules常用参数:

    • npm install --save <package>:将依赖添加到 dependencies
    • npm install --save-dev <package>:将依赖添加到 devDependencies
    • npm install --global <package>:全局安装依赖。
  • npm ci 快速安装依赖,完全按照 package-lock.json 中的版本安装,适用于 CI/CD 环境。

2. 更新相关命令

  • npm update 更新依赖到符合 package.json 中版本范围的最新版本。 示例:

       npm update lodash
  • npm outdated 查看项目中依赖的当前版本、最新版本以及受支持的版本。

3. 发布与管理

  • npm publish 将当前包发布到 npm 仓库,通常用于开源或内部共享的库。

  • npm unpublish 删除已发布的包。注意:只能删除 72 小时内发布的包。

  • npm deprecate 标记某个版本的包为已弃用,并向用户显示警告。

4. 卸载相关命令

  • npm uninstall / npm rm 卸载某个依赖,同时从 package.json 中移除。
       npm uninstall <package>

5. 调试与诊断

  • npm audit 检查依赖中的安全漏洞,并提供修复建议。

       npm audit fix
  • npm doctor 检查 npm 的配置、依赖和环境是否正常。

  • npm ls 显示项目的依赖树,可以检查某个包的版本和依赖关系。

       npm ls lodash

6. 缓存管理

  • npm cache clean --force 清理本地 npm 缓存。

  • npm cache verify 验证和修复 npm 缓存。

7. 配置相关命令

  • npm config 设置或查看 npm 的配置。

       npm config set registry https://registry.npmjs.org/
    npm config get registry
  • npm login / npm logout 登录或退出 npm 账号,用于发布或访问私有包。

8. 获取依赖版本号

  • npm view
       npm view <package_name> versions

总结

  • npm dedupe:优化依赖结构,减少重复依赖。
  • 常用命令分类:
    1. 安装依赖:npm install,npm ci,npm uninstall
    2. 更新依赖:npm update,npm outdated
    3. 调试诊断:npm audit,npm doctor,npm ls
    4. 缓存管理:npm cache clean,npm cache verify

掌握这些命令可以让你更高效地管理项目依赖。