# npm

npm (opens new window) 是 Node.js 的包管理工具,全称为 Node Package Manager。它既是命令行工具用于管理项目依赖,也是在线仓库 (opens new window)供开发者共享模块。

# 一、常用命令

# 配置管理

  • npm config

    npm config (opens new window) 命令用于更新和编辑用户和全局 .npmrc (opens new window) 文件的内容,也可以获取指定项的配置 (opens new window)信息。

    # 查看当前 registry 配置
    npm config get registry
    
    # 设置镜像源(推荐中国用户使用)
    npm config set registry https://registry.npmmirror.com/
    
    # 查看全局安装路径
    npm config get prefix
    

# 依赖管理

  • npm install

    npm install (opens new window) 命令安装一个包及其依赖的任何包。

    # 安装项目依赖(根据 package.json)
    npm install
    
    # 安装指定包并写入 dependencies
    npm install <package-name>
    
    # 安装指定包并写入 devDependencies
    npm install -D <package-name>
    npm install --save-dev <package-name>
    
    # 全局安装(需管理员权限)
    sudo npm install -g <package-name>
    
  • npm link

    在依赖包目录中执行没有参数的 npm link (opens new window),将在全局文件夹中创建一个符号链接。

    在其他位置,执行 npm link package-name 将在当前文件夹下的 node_modules/ 目录下,创建一个符号链接,链接到全局安装的 package-name

    # 在包目录创建全局软链接(开发调试常用)
    cd /your-package
    npm link
    
    # 在其他项目链接该包
    cd /your-project
    npm link your-package
    

# 二、配置管理

# 配置优先级

npm 按以下顺序加载配置 (opens new window)(后者覆盖前者):

  • 内置默认配置/path/to/npm/npmrc
  • 全局配置$PREFIX/etc/npmrc
  • 用户级配置~/.npmrc
  • 项目级配置./.npmrc
  • 环境变量:以 npm_config_ 开头的变量
  • 命令行参数:如 --registry=https://registry.npmmirror.com/

# 关键配置项

配置项 作用描述 典型值示例
registry (opens new window) 包仓库地址 https://registry.npmmirror.com/
prefix (opens new window) 全局安装路径 /usr/local(Unix)
save-exact (opens new window) 安装时锁定精确版本号 true

# 配置文件示例

~/.npmrc (opens new window)(用户级配置):

registry=https://registry.npmmirror.com/
prefix=/home/user/.npm-global
engine-strict=true