NPM 常用命令
NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具,它不仅可以管理 Node.js 项目的依赖,还提供了丰富的命令来管理和发布你的代码。本文将从不同角度,深入浅出地介绍 NPM 的常用命令和实际应用。
目录
- [NPM 基础](#NPM 基础)
- 什么是 NPM
 - 安装 NPM
 - 初始化项目 (
npm init) 
 - 管理依赖
- 安装依赖 (
npm install) - 升级和卸载依赖 (
npm update,npm uninstall) - 保存依赖 (
--save,--save-dev) 
 - 安装依赖 (
 - 运行脚本
- 定义脚本 (
scripts字段) - 运行脚本 (
npm run) - 常见脚本示例
 
 - 定义脚本 (
 - 包管理
- 发布包 (
npm publish) - 版本控制 (
npm version) - 标记和发布标签 (
npm tag) 
 - 发布包 (
 - 配置和调试
- 配置 NPM (
npm config) - 查看和设置参数 (
npm get,npm set) - 调试 NPM (
npm audit,npm cache) 
 - 配置 NPM (
 
1. NPM 基础
什么是 NPM
NPM 是 Node.js 的包管理工具和默认的包管理器,它用于管理 JavaScript 代码包。NPM 仓库是全球最大的开源库,包含了数百万个 JavaScript 包。
- 管理依赖:自动处理依赖的安装、升级和卸载。
 - 运行脚本 :通过 
package.json中的scripts字段定义和运行项目任务。 - 发布和分享:开发和发布自己的包到 NPM 仓库。
 
安装 NPM
NPM 通常与 Node.js 一起安装。你可以从 Node.js 官网 下载 Node.js,它包含了 NPM。
            
            
              bash
              
              
            
          
          # 检查是否安装了 NPM
npm -v
        初始化项目 (npm init)
在开始使用 NPM 之前,你需要初始化一个项目,这会创建一个 package.json 文件,存储项目的元数据和依赖信息。
            
            
              bash
              
              
            
          
          # 初始化项目并交互式创建 package.json 文件
npm init
# 使用默认值快速初始化
npm init -y
        package.json 文件包含了项目的名称、版本、描述、入口文件、脚本、依赖等信息。
            
            
              json
              
              
            
          
          {
  "name": "my-project",
  "version": "1.0.0",
  "description": "A simple NPM project",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {},
  "devDependencies": {}
}
        2. 管理依赖
NPM 的核心功能之一是管理项目的依赖库。这些依赖库可以是你项目所需的任何第三方包。
安装依赖 (npm install)
NPM 通过 npm install 命令来安装包。你可以安装单个包,也可以安装 package.json 中列出的所有包。
            
            
              bash
              
              
            
          
          # 安装一个指定的包
npm install lodash
# 安装并保存到 package.json 中的 dependencies
npm install express --save
# 安装并保存到 package.json 中的 devDependencies
npm install jest --save-dev
# 安装 package.json 中的所有依赖
npm install
        执行完 npm install 后,所有的包都会被安装到 node_modules 目录中,同时 package-lock.json 文件会记录精确的版本信息,确保项目在不同环境下的一致性。
升级和卸载依赖 (npm update, npm uninstall)
你可以升级项目的依赖到最新版本,或卸载不再需要的依赖。
            
            
              bash
              
              
            
          
          # 升级单个包到最新版本
npm update lodash
# 升级所有包到最新版本
npm update
# 卸载一个包
npm uninstall lodash
# 卸载并从 package.json 中删除条目
npm uninstall lodash --save
npm uninstall jest --save-dev
        保存依赖 (--save, --save-dev)
--save: 将依赖保存到dependencies字段,表示这些包在生产环境下也是必须的。--save-dev: 将依赖保存到devDependencies字段,表示这些包只在开发环境下需要。
            
            
              bash
              
              
            
          
          # 安装并保存到生产依赖
npm install express --save
# 安装并保存到开发依赖
npm install jest --save-dev
        3. 运行脚本
NPM 允许在 package.json 中定义脚本,用于自动化常见的开发任务。
定义脚本 (scripts 字段)
在 package.json 中,你可以通过 scripts 字段定义各种命令脚本。这些脚本可以通过 npm run 运行。
            
            
              json
              
              
            
          
          {
  "scripts": {
    "start": "node index.js",
    "test": "jest",
    "build": "webpack",
    "lint": "eslint ."
  }
}
        运行脚本 (npm run)
要运行定义的脚本,可以使用 npm run <script-name>。
            
            
              bash
              
              
            
          
          # 运行 start 脚本
npm run start
# 运行 test 脚本
npm run test
# 运行 build 脚本
npm run build
        对于 start 和 test 脚本,你可以省略 run 关键字,直接运行 npm start 或 npm test。
常见脚本示例
一些常见的脚本定义和用途包括:
- 
启动服务器:
json"scripts": { "start": "node server.js" } - 
运行测试:
json"scripts": { "test": "jest" } - 
构建项目:
json"scripts": { "build": "webpack --mode production" } - 
代码风格检查:
json"scripts": { "lint": "eslint ." } 
4. 包管理
NPM 不仅是一个依赖管理工具,还可以用于发布和管理自己的 JavaScript 包。
发布包 (npm publish)
发布包到 NPM 仓库,让其他开发者可以安装和使用。
            
            
              bash
              
              
            
          
          # 确保已经登录到 NPM
npm login
# 发布当前目录下的包
npm publish
        发布之前,请确保 package.json 文件配置正确,并且已经完成代码的所有必要准备工作。
版本控制 (npm version)
使用 npm version 命令可以自动更新 package.json 中的版本号,并为代码打上 Git 标签。
            
            
              bash
              
              
            
          
          # 更新补丁版本 (1.0.0 -> 1.0.1)
npm version patch
# 更新次版本号 (1.0.0 -> 1.1.0)
npm version minor
# 更新主版本号 (1.0.0 -> 2.0.0)
npm version major
        标记和发布标签 (npm tag)
在发布包时,你可以为不同版本的包打上标签,以便于管理和区分。
            
            
              bash
              
              
            
          
          # 为当前版本添加一个标签
npm tag add my-package@1.0.0 beta
# 查看包的所有标签
npm dist-tag ls my-package
        5. 配置和调试
NPM 提供了一系列的命令,用于配置和调试 NPM 及其行为。
配置 NPM (npm config)
NPM 使用 .npmrc 文件存储配置,你可以通过 npm config 命令查看和修改这些配置。
            
            
              bash
              
              
            
          
          # 查看所有配置
npm config list
# 设置配置项
npm config set registry https://registry.npmjs.org/
# 获取配置项的值
npm config get registry
        查看和设置参数 (npm get, npm set)
npm get 和 npm set 命令允许你查看和设置单个配置项。
            
            
              bash
              
              
            
          
          # 获取 registry 的值
npm get registry
# 设置 registry 的值
npm set registry https://registry.npmjs.org/
        调试 NPM (npm audit, npm cache)
NPM 提供了一些调试和优化命令,帮助你保持项目的健康和性能。
            
            
              bash
              
              
            
          
          # 检查项目中的安全漏洞
npm audit
# 修复可用的安全漏洞
npm audit fix
# 清除 NPM 缓存
npm cache clean --force
        这些命令帮助你识别和解决项目中的潜在问题,保持项目的健壮性和安全性。
总结
NPM 是一个强大的工具
,不仅仅是一个包管理器,它提供了从依赖管理、脚本执行、包发布到配置和调试的一整套功能。掌握这些常用的 NPM 命令和实践,能够极大地提高你在 JavaScript 项目开发中的效率和生产力。