npm (Node Package Manager) 简介

npm 是 Node.js 的默认包管理工具,用于管理和分发JavaScript库和工具。它允许开发者轻松安装、更新、配置和卸载这些包。npm 提供了一个命令行客户端,同时也维护着一个大型的在线软件注册表(npm registry),其中包含了成千上万的开源包。

npm 的基本使用

安装与初始化
  1. 安装 Node.js 和 npm

    • 通常安装了 Node.js 后,npm 也会一并安装。你可以通过以下命令检查是否已经安装以及版本信息:

      bash 复制代码
      node -v
      npm -v
  2. 创建新项目

    • 在项目的根目录下运行 npm init 命令,可以创建一个新的 package.json 文件,这个文件定义了项目的元数据及依赖关系。

      bash 复制代码
      npm init -y # 使用默认设置快速初始化
安装依赖包
  1. 安装全局包

    • 全局安装的包可以在任何地方使用,例如CLI工具。

      bash 复制代码
      npm install -g <package-name>
  2. 安装本地包

    • 本地安装的包只会在当前项目中可用,并且会被添加到 package.jsondependenciesdevDependencies 中。

      bash 复制代码
      npm install <package-name> --save    # 添加到dependencies
      npm install <package-name> --save-dev # 添加到devDependencies
  3. 安装特定版本的包

    • 可以指定要安装的具体版本号或版本范围。

      bash 复制代码
      npm install <package-name>@<version>
  4. 安装所有依赖

    • 当克隆了一个已有 package.json 的项目时,可以通过以下命令安装所有列出的依赖。

      bash 复制代码
      npm install
更新与卸载
  1. 更新依赖包

    • 更新 package.json 中列出的所有依赖到最新版本。

      bash 复制代码
      npm update
  2. 卸载依赖包

    • 卸载不再需要的包,并从 package.json 中移除。

      bash 复制代码
      npm uninstall <package-name>
包的发布
  1. 登录 npm 账户

    • 如果你想发布自己的包,首先需要登录。

      bash 复制代码
      npm login
  2. 发布包

    • 确保你的 package.json 文件配置正确后,可以使用以下命令发布。

      bash 复制代码
      npm publish
其他常用命令
  • 查看已安装的包

    bash 复制代码
    npm list
    npm list -g --depth=0 # 查看全局安装的包
  • 清理缓存

    bash 复制代码
    npm cache clean --force
  • 查找过时的包

    bash 复制代码
    npm outdated
  • 运行脚本

    • package.json 文件中的 scripts 字段可以定义一些自定义命令,比如启动应用、构建等。

      bash 复制代码
      npm run <script-name>

最佳实践

  • 锁定版本 :使用 package-lock.json 文件来确保不同环境中安装的依赖版本一致。
  • 安全更新 :定期运行 npm audit 来检查并修复潜在的安全漏洞。
  • 避免过多依赖:尽量减少不必要的依赖,保持项目的简洁性。
  • 使用 .npmrc 文件 :对于私有仓库或其他特殊配置,可以使用 .npmrc 文件来进行个性化设置。
相关推荐
杨荧18 分钟前
【开源免费】基于Vue和SpringBoot的林业产品推荐系统(附论文)
前端·javascript·vue.js·spring boot·开源
光影少年36 分钟前
前端进程和线程及介绍
前端·javascript
Franciz小测测40 分钟前
VUE3 + Ant Design Vue4 开发笔记
前端·vue.js·vue
Swing_wingS1 小时前
SpringMvc解决跨域问题的源码汇总。
前端
乌龟的黑头-阿尔及利亚1 小时前
使用 Vite 创建 Vue 3 项目:从零开始的详细指南
前端·javascript·vue.js
三天不学习1 小时前
what?ngify 比 axios 更好用,更强大?
前端·axios·请求响应·ngify
2403_875180952 小时前
一键掌握多平台短视频矩阵营销/源码部署
java·前端·数据结构·线性代数·矩阵·php
Best_卡卡2 小时前
前端性能-HTTP缓存
前端·http·缓存
GIS好难学3 小时前
《Openlayers零基础教程》第六课:地图控件
前端·javascript·零基础·openlayers