随机
Enter 搜索 ↑↓ 切换 Esc 清空

npm

命令

Node.js 包管理器

npm

Node.js 包管理器

补充说明

npm (Node Package Manager) 是 Node.js 的默认包管理器,用于安装、管理、发布 JavaScript 包。是前端和 Node.js 开发的核心工具。

语法

npm [command] [options]

常用命令

# ========== 初始化项目 ==========

# 交互式创建 package.json
npm init
npm init -y                    # 使用默认配置
npm init -y --scope=@myorg     # 指定 scope

# ========== 安装包 ==========

# 安装依赖
npm install                     # 安装所有依赖
npm i                          # 简写
npm install package-name       # 安装单个包
npm i package-name

# 安装为生产依赖
npm install package-name --save
npm i package-name -S
npm install package-name        # npm 5+ 默认 --save

# 安装为开发依赖
npm install package-name --save-dev
npm i package-name -D

# 安装为可选依赖
npm install package-name --save-optional
npm i package-name -O

# 安装全局包
npm install -g package-name
npm i -g package-name

# 安装指定版本
npm install package-name@4.0.0
npm install package-name@latest
npm install package-name@">=4.0.0 <5.0.0"

# 安装 GitHub 仓库包
npm install github:user/repo
npm install git+https://github.com/user/repo.git

# 安装本地包
npm install ./package.tgz
npm install ../local-package

# ========== 卸载包 ==========

npm uninstall package-name
npm uninstall -g package-name
npm uninstall package-name --save
npm uninstall package-name --save-dev

# ========== 更新包 ==========

# 查看可更新的包
npm outdated

# 更新包
npm update                      # 更新所有依赖
npm update package-name        # 更新指定包
npm update -g                  # 更新全局包
npm update package-name@latest

# ========== 查看包信息 ==========

# 查看包信息
npm view package-name
npm view package-name versions  # 查看所有版本
npm view package-name version   # 查看最新版本
npm view package-name repository # 查看 repo 信息
npm view package-name dependencies

# 查看已安装的包
npm list
npm list -g                    # 全局包
npm list --depth=0             # 只显示顶层依赖
npm ls package-name            # 查看特定包

# ========== 搜索包 ==========

npm search package-name
npm search keyword

# ========== 运行脚本 ==========

# 运行 package.json 中的脚本
npm run start
npm run build
npm run test
npm run dev

# 特殊简写
npm start                       # npm run start
npm test                        # npm run test
npm stop                        # npm run stop
npm restart                     # npm run restart

# ========== 配置镜像源 ==========

# 设置镜像源
npm config set registry https://registry.npmmirror.com

# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com

# 使用官方源
npm config set registry https://registry.npmjs.org

# 查看当前镜像源
npm config get registry

# 显示所有配置
npm config list

# ========== 清理缓存 ==========

# 清理缓存
npm cache clean
npm cache clean --force

# 验证缓存
npm cache verify

# ========== 发布包 ==========

# 登录 npm
npm login
npm login --scope=@myorg

# 发布包
npm publish
npm publish --access public     # 公开发布
npm publish --access restricted # 受限制发布

# 发布指定 tag
npm publish --tag beta
npm publish --tag next

# 取消发布
npm unpublish package-name@version
npm unpublish package-name --force

# 废弃包版本
npm deprecate package-name@version "message"

# ========== 其他命令 ==========

# 查看版本
npm -v
npm --version

# 查看帮助
npm help
npm help install

# 查看用户信息
npm whoami

# 创建包
npm create package-name
npm create vite@latest my-app

# 执行包命令
npm exec package-name
npx package-name

# 检查安全漏洞
npm audit
npm audit fix
npm audit fix --force

package.json 结构

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "项目描述",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "webpack --mode production",
    "test": "jest",
    "lint": "eslint src/"
  },
  "keywords": ["node", "express"],
  "author": "作者",
  "license": "MIT",
  "dependencies": {
    "express": "^4.18.0",
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "jest": "^29.0.0",
    "eslint": "^8.0.0"
  },
  "engines": {
    "node": ">=16.0.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/user/repo.git"
  },
  "homepage": "https://github.com/user/repo#readme",
  "bugs": {
    "url": "https://github.com/user/repo/issues"
  }
}

版本号说明

# 版本号格式: 主版本.次版本.修订版
# 1.0.0 -> 1.0.1 -> 1.1.0 -> 2.0.0

# 版本范围语法
^1.2.3        # 1.2.3 <= version < 2.0.0(默认)
~1.2.3        # 1.2.3 <= version < 1.3.0
1.2.x         # 1.2.0 <= version < 1.3.0
>=1.2.3       # 大于等于 1.2.3
<2.0.0        # 小于 2.0.0
1.2.3 - 2.3.4 # 1.2.3 <= version <= 2.3.4
||            # 或,如 ^1 || ^2
latest        # 最新版本

# npm version 命令
npm version patch    # 修订版 +1
npm version minor    # 次版本 +1
npm version major    # 主版本 +1
npm version 1.0.2    # 设为指定版本

npx 使用

# 执行包命令(无需全局安装)
npx create-react-app my-app
npx create-vite my-app --template react
npx playwright test

# 使用指定版本的包
npx package-name@version

# 运行本地脚本
npx webpack
npx jest

# 从 URL 运行
npx github:user/repo

常用镜像源

# 淘宝镜像(推荐)
npm config set registry https://registry.npmmirror.com

# 腾讯镜像
npm config set registry https://mirrors.cloud.tencent.com/npm/

# 华为镜像
npm config set registry https://repo.huaweicloud.com/repository/npm/

# 官方源
npm config set registry https://registry.npmjs.org

package-lock.json

# 生成 package-lock.json
npm install

# 使用 lock 安装精确版本
npm ci                      # 清洁安装,使用 lock 文件

# package-lock.json 作用:
# 1. 锁定依赖版本
# 2. 加快 npm install 速度
# 3. 确保团队依赖版本一致