在本文中,我将带大家一步步学习如何创建并发布一个 NPM 包,帮助开发者理解整个流程,并能顺利将自己的 JavaScript 库发布到 NPM 上供他人使用。
1. 安装 Node.js 和 npm
在开始之前,请确保你的电脑上已经安装了 Node.js 和 npm(Node.js 自带 npm)。你可以在终端(Windows 用户请使用 cmd
或 PowerShell
)输入以下命令检查是否已安装:
node -v
npm -v
如果出现版本号,说明已安装。如果没有,请前往 Node.js 官网 下载并安装。
2. 创建一个新的项目文件夹
在合适的目录下运行以下命令,创建项目文件夹并进入:
mkdir my-npm-package
cd my-npm-package
3. 初始化 package.json
运行以下命令初始化 package.json
文件:
npm init
然后根据提示输入包的名称、版本号、描述、入口文件等信息。或者你可以使用 npm init -y
来直接生成一个默认的 package.json
文件。
示例 package.json
(文件名:package.json
):
{
"name": "my-npm-package",
"version": "1.0.0",
"description": "一个简单的 NPM 包示例",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": ["npm", "package", "example"],
"author": "你的名字",
"license": "MIT"
}
4. 编写核心代码
在项目根目录创建 index.js
文件,并编写代码。例如,我们创建一个简单的函数,用于返回 Hello, NPM!
。
文件名:index.js
function sayHello() {
return "Hello, NPM!";
}
module.exports = sayHello;
5. 创建 README 文件
在根目录创建 README.md
,用于向用户介绍你的 NPM 包。
文件名:README.md
# my-npm-package
这是一个简单的 NPM 包示例,它提供一个 `sayHello` 方法,返回 `Hello, NPM!`。
## 安装
```sh
npm install my-npm-package
使用示例
const sayHello = require('my-npm-package');
console.log(sayHello()); // 输出: Hello, NPM!
---
## 6. 登录 NPM 账户
如果你还没有 NPM 账户,可以前往 [NPM 官网](https://www.npmjs.com/) 注册一个。
然后在终端登录:
```sh
npm login
输入你的 用户名、密码和邮箱 进行登录。
7. 发布 NPM 包
发布前,确保 package.json
中的 name
没有和已有的包重复(可在 NPM 搜索 页面查找)。
如果包名重复,可以在 package.json
修改 name
,或者使用 NPM 作用域(Scoped Packages),格式如 @yourusername/package-name
。
然后,在终端运行以下命令发布包:
npm publish
如果是 Scoped Package,需要加上 --access public
:
npm publish --access public
发布成功后,你的包就可以在 npmjs.com 上搜索并安装了!
8. 测试安装并使用
在另一个项目或测试目录运行:
npm install my-npm-package
然后创建 test.js
文件并运行:
文件名:test.js
const sayHello = require('my-npm-package');
console.log(sayHello()); // 输出: Hello, NPM!
运行:
node test.js
你应该会看到 Hello, NPM!
的输出!
9. 更新 NPM 包
如果你需要更新 NPM 包,比如修复了 bug 或增加了新功能,需要更新 package.json
中的版本号(如 1.0.0
-> 1.0.1
),然后重新发布:
npm version patch
npm publish
如果是新增功能:
npm version minor
npm publish
如果是重大更新:
npm version major
npm publish
10. 删除已发布的包(慎用!)
如果你发布了错误的包,可以在 72 小时内 使用以下命令删除:
npm unpublish my-npm-package --force
但 NPM 不允许删除已发布超过 72 小时的包,所以请谨慎发布。
总结
通过本文,你学会了:
- 如何创建并初始化一个 NPM 包
- 如何编写
index.js
代码并导出功能 - 如何创建
README.md
介绍包的用途 - 如何登录并发布 NPM 包
- 如何安装并使用自己发布的包
- 如何更新和删除 NPM 包
希望这篇文章对你有所帮助!如果有问题,欢迎留言讨论 😊