npm(Node Package Manager)是 Node.js 的官方包管理工具,是一个命令行的工具,用于安装、升级、移除和管理依赖项

官网:www.npmjs.com

类似于:

  • Java 的 Maven,Java 的构建工具和项目管理工具,可以自动化构建、测试和部署 Java 应用程序
  • PHP 的 Composer,PHP 的包管理器,可以用于下载、安装和管理 PHP 的依赖项
  • Python 的 pip,Python 的包管理器,可以用于安装和管理 Python 的依赖项
  • Rust 的 Cargo,Rust 的包管理器和构建工具,可以用于下载、编译和管理 Rust 的依赖项

npm 常用命令

  • npm init:初始化一个新的 npm 项目,创建 package.json 文件
  • npm install(简写 npm i):安装依赖包,将依赖包存放在当前目录的 node_modules 文件夹下
    • npm i:安装 package.json 文件指定的所有依赖包
    • npm i <package-name>:安装指定的包的最新版本
    • npm i <package-name>@<version>:安装指定的包的指定版本
    • npm i --save/-S <package-name>:安装指定包,并将其添加到 package.json 文件中的依赖列表中("dependencies"
      • npm V5 后可以不写,默认就是 --save
    • npm i --save-dev/-D <package-name>:安装指定包,并将其添加到 package.json 文件中的开发依赖列表中("devDependencies"
    • npm i --global/-g <package-name>:全局安装指定的包,安装路径已被添加到 PATH 环境变量中,所以可以直接在 shell 中使用全局安装包的命令
    • 依赖项:
      • dependencies:生产和开发依赖,生产环境也需要用的包,如:vuevue-router
      • devDependencies:开发依赖,生产环境不需要,只在开发是需要的包,如:webpacktypescript
      • peerDependencies:对等依赖,依赖包但该包不由我提供,而是由使用我的项目提供,如:本包是 webpack 的一个插件,就依赖于 webpack,但我不需要安装,而是由使用我这个插件的项目提供
  • npm update:更新依赖包版本
    • npm update:更新 package.json 文件指定的所有依赖包
    • npm update <package-name>:更新指定的包
    • npm update --global/-g <package-name>:更新全局安装指定的包
    • 版本相关:
      • 遵循 SemVer(Semantic Version,语义化版本)规范
      • 正式版:MAJOR.MINOR.PATCH
        • 主版本:重大更新,不兼容的 API 修改
        • 次版本:向下兼容的功能性新增
        • 修订版本:向下兼容的问题修正
      • 先行版本:MAJOR.MINOR.PATCH-alpha|beta|rc.number
  • npm uninstall/uni <package-name>:卸载指定的包
  • npm run <script-name>:执行 package.json 文件中定义的脚本命令。
  • npm search <keyword>:搜索 npm 库中包含指定关键字的包。
  • npm info <package-name>:查看指定包的详细信息。
  • npm list:列出当前项目中安装的所有包。
  • npm outdated:列出当前项目中需要更新的包。
  • npm audit:检查当前项目中的依赖项是否存在安全漏洞。
  • npm publish:发布自己开发的包到 npm 库中。
  • npm login:登录到 npm 账户。
  • npm logout:注销当前 npm 账户。
  • npm link: 将本地模块链接到全局的 node_modules 目录下
  • npm config list 用于列出所有的 npm 配置信息。执行该命令可以查看当前系统和用户级别的所有 npm 配置信息,以及当前项目的配置信息(如果在项目目录下执行该命令)
  • npm get registry 用于获取当前 npm 配置中的 registry 配置项的值。registry 配置项用于指定 npm 包的下载地址,如果未指定,则默认使用 npm 官方的包注册表地址
  • npm set registry npm config set registry <registry-url> 命令,将 registry 配置项的值修改为指定的 <registry-url> 地址