1. 概述

npm 是一个包管理工具,它允许我们在使用 JavaScript 开发时安装库、框架以及其他工具。借助 npm,我们可以轻松访问 npmjs 官方仓库中发布的 Node.js 项目。但并不是所有包都发布在 npmjs 上。

在本文中,我们将介绍如何直接从 GitHub 公共仓库安装 npm 包,这对于测试尚未发布到 npm 的最新功能非常有用。


2. 准备工作

在开始之前,请确保你的系统中已经安装了 node.js、npm 和 git。

如果你要从私有 GitHub 仓库安装 npm 包,你需要一个 GitHub 账号,并配置好访问权限

2.1. 安装 node.js 和 npm

首先更新系统软件包:

$ sudo apt update

然后安装 node.js 和 npm:

$ sudo apt install -y nodejs npm

该命令将安装 Node.js 和 npm。安装过程中,-y 参数会自动确认所有提示,加快安装过程。

2.2. 安装 git

在 Debian 系统上安装 git 非常简单:

$ sudo apt install -y git

这个命令将安装 git。同样,-y 参数会自动确认操作。


3. 从 GitHub 基础安装 npm 包

npm 支持直接从 GitHub 仓库安装 Node.js 项目,即使该包尚未发布到 npm 官方仓库。✅ 这在测试或调试新功能时非常有用。

3.1. 使用 HTTPS URL 安装

你可以使用 HTTPS URL 安装 GitHub 上的 npm 包,例如 express:

$ npm install https://github.com/expressjs/express

added 67 packages in 16s

12 packages are looking for funding
  run `npm fund` for details

这表示你已成功从 GitHub 安装了 express 包。

3.2. 使用 git URL 安装

也可以使用 git 协议格式安装:

$ npm install git+https://github.com/expressjs/express

up to date, audited 68 packages in 9s

12 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

这种方式同样有效,npm 会从 GitHub 下载并安装该仓库。

3.3. 使用快捷 URL 安装

npm 还支持一种简写格式:

$ npm install expressjs/express

这种方式会自动识别为 GitHub 上的 expressjs/express 仓库。


4. 从指定分支、标签或提交安装

有时候我们希望安装特定版本的包,比如某个分支、tag 或 commit。

4.1. 安装特定分支

可以使用 # 后跟分支名来安装特定分支:

$ npm install https://github.com/expressjs/express#release-branch-diagram

4.2. 安装特定标签

同样,也可以安装某个 tag:

$ npm install https://github.com/expressjs/express#4.18.0

4.3. 安装特定提交

使用 commit 的 SHA 值安装特定提交:

$ npm install https://github.com/expressjs/express#d97d79ed9a25099ec4f0537ad8bf2a9378350a6b

5. 从私有 GitHub 仓库安装 npm 包

从私有仓库安装 npm 包需要额外配置,比如使用 Personal Access Token (PAT) 或 SSH。

5.1. 使用 GitHub Personal Access Token

首先,在项目根目录创建 .npmrc 文件并配置 token:

$ echo "//npm.pkg.github.com/:_authToken=github_pat_11BGNPQCQ0FQH52tVAPSkO_" > .npmrc

然后安装私有仓库中的包:

$ npm install git+https://github.com/EbukaNduka/Data_Converter.git

你也可以直接在 URL 中使用 token(不推荐):

$ npm install https://github_pat_11BGNPQCQ0FQH52tVAPSkO_@github.com/EbukaNduka/Data_Converter

⚠️ 注意:这种方式存在安全风险,不建议在生产环境使用。

5.2. 使用 SSH 安装

首先生成 SSH 密钥对:

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成完成后,将公钥添加到 GitHub 仓库的 Deploy Keys 或 SSH Keys 中。

然后使用 SSH 安装:

$ npm install git+ssh://git@github.com:EbukaNduka/Data_Converter.git

这种方式更安全,适合团队协作或 CI/CD 环境使用。


6. package.json 中的 GitHub 依赖与普通依赖对比

普通 npm 依赖和 GitHub 依赖的功能是一样的,但它们在 package.json 中的表示方式不同。

普通依赖示例:

{
  "dependencies": {
    "express": "^4.18.0"
  }
}

GitHub 依赖示例:

{
  "dependencies": {
    "express": "github:expressjs/express#d97d79ed9a25099ec4f0537ad8bf2a9378350a6b"
  }
}

GitHub 依赖会包含仓库地址和一个可选的 commit、tag 或分支名。


7. 总结

在本文中,我们介绍了几种从 GitHub 安装 npm 包的方法,包括:

✅ 使用 HTTPS、git、快捷 URL 安装公共仓库包
✅ 安装特定分支、tag 或 commit
✅ 使用 PAT 或 SSH 安装私有仓库包
✅ package.json 中的 GitHub 依赖格式

这些方法在开发中非常实用,尤其是在使用未发布功能或调试时。但在生产环境中,建议优先使用官方 npm 包以确保稳定性与安全性。


原始标题:How to Install an npm Package Directly From GitHub