1. 什么是npm包?
npm(Node Package Manager)是Node.js的包管理器,是世界上最大的软件注册表之一,使开发人员可以轻松地安装、更新和共享代码包。npm包是Node.js模块的集合,其中包括库、框架、工具、插件和应用程序。安装npm包的最浅显的方法是使用npm cli,但我们也可以从GitHub上直接安装npm包。
2. 从GitHub上安装npm包的好处
相对于从npm注册表上安装npm包,从GitHub上安装包有以下好处:
可以更好的实现主题的定制;
可以访问包的源代码;
我们可以根据个人的需求对包进行模块化的修改并提交给原作者。
3. 从GitHub上直接下载npm包
3.1 下载压缩包
从GitHub上下载npm包包括两个步骤。第一个步骤是下载包的压缩包,可以通过GitHub或者git命令来获取。在以下的例子中,我们将下载prettier的npm包,通过GitHub获取压缩包的过程如下:
https://github.com/prettier/prettier/archive/refs/tags/2.4.1.tar.gz
通过上述URL获取了prettier 2.4.1的压缩包,将得到一个.tar.gz的文件。我们可以在本地解压以获得源代码。
3.2 下载源代码
得到压缩包之后,需要我们解压它并获取源代码。利用以下的命令来解压我们得到的prettier的2.4.1版本:
tar -xzf prettier-2.4.1.tar.gz
解压完成后,我们可以通过ls命令来查看获取的源代码:
ls prettier-2.4.1
通过以上的方法,我们已经成功获取prettier这个包的源代码了。然而,这么获得的源代码不能当作一个真正的npm包推广。接下来,我们将教你如何完成从GitHub上获取的源代码到定制npm包的全过程。
4. 定制GitHub上的源代码为npm包
4.1 构建npm包
在下面的例子中,我们解释如何将prettier的源代码构建为一个npm包。如果有必要,你可以在你的npm包中添加一些配置文件,比如package.json文件。以下是如何在你的项目中添加一个package.json文件的方法:
cd prettier-2.4.1
npm init
按照npm init命令的提示输入信息,可以填写包名、版本号、描述、入口文件、x-author和licenses等信息。注意:入口文件应该是你的项目需要被运行的脚本文件名,而不是你的可执行文件或其他文件的名字。
以prettier的package.json文件为例:
{
"name": "prettier",
"version": "2.4.1",
"description": "Opinionated Code Formatter",
"author": "Prettier Contributors",
"bin": {
"prettier": "./bin-prettier.js"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/prettier/prettier.git"
},
"keywords": [
"prettier",
"code",
"formatter",
"style",
"lint",
"automatic"
],
"dependencies": {
"chalk": "^4.1.0",
"doctrine": "^3.0.0",
"fast-deep-equal": "^3.1.1",
"jest-worker": "^26.5.0",
"picomatch": "^2.3.0",
"resolve": "^1.18.1",
"semver": "^7.3.2",
"tslib": "^2.2.0"
},
"devDependencies": {
"codecov": "^3.7.0",
"eslint": "^7.29.0",
"eslint-config-prettier": "^8.3.0",
"husky": "^4.3.7",
"jest": "^26.6.3",
"prettier": "^2.4.1",
"rimraf": "^3.0.2",
"standard-version": "^9.4.0",
"typescript": "^4.3.2"
}
}
构建完成你的npm包的Package.json文件后,使用下面的命令,进行构建,安装本地依赖内容,其中package-lock.json是由npm install命令之后自动生成的:
npm install
npm build
4.2 发布npm包
有了构建好的npm包,我们就可以开始发布它了。通过登录到你的npm账号,发布包有多种方式,这里给出较为常用的一种方式:
npm login
npm publish
您的精心打造的node包就可以通过npm install命令进行安装了。
5. 总结
通过本文,我们学到了如何从GitHub上直接安装npm包,同时又介绍了一些方法将我们从GitHub上获取到的源码打包为可被推广的npm包。我们深入讨论了要如何创建Package.json、安装本地依赖、构建你的npm包和发布npm包。