如何将你写的 js 模块发布到 npmjs 给大家使用

介绍如何将你写的 js 模块发布到 npmjs 仓库,让其他开发者可以通过 npm 安装和使用。来丰富社区。

准备工作

发布 npm 包前,确保你已经:

  1. 安装了 Node.js 和 npm
  2. 拥有 npm 账号(可以在 npmjs.com 注册)
  3. 在本地登录 npm 账号

发布步骤

1. 登录 npm 账号

如果尚未登录,首先执行登录命令:

bash 复制代码
npm login

根据提示输入用户名、密码和邮箱。

2. 确认 package.json 配置

确保 package.json 文件包含了必要的信息:

json 复制代码
{
  "name": "app name",
  "version": "1.0.6",
  "description": "app description.",
  "author": "你的名字 <你的邮箱>",
  "repository": {
    "type": "git",
    "url": "https://github.com/你的用户名/appname.git"
  },
  "keywords": ["key"],
  "main": "src/app.js",
  "type": "module",
  "license": "MIT",
  "files": [
    "src/",
    "README.md",
    "LICENSE"
  ]
}

特别注意确认:

  • version:每次发布必须更新版本号
  • main:入口文件路径, 很重要
  • files:指定哪些文件会被发布到 npm

3. 更新版本号

每次发布新版本前,都需要更新 package.json 中的版本号。可以手动修改,也可以使用 npm 命令:

bash 复制代码
# 增加补丁版本号 (1.0.5 -> 1.0.6)
npm version patch

# 增加次要版本号 (1.0.5 -> 1.1.0)
npm version minor

# 增加主要版本号 (1.0.5 -> 2.0.0)
npm version major

4. 创建 .npmignore 文件(可选)

如果有些文件你不想发布到 npm,可以创建一个 .npmignore 文件:

bash 复制代码
tests/
examples/
.git/
.github/
node_modules/
*.log
*.tgz

5. 测试打包

在发布前,可以先测试打包,确认包含的文件是否正确:

bash 复制代码
npm pack

这会创建一个 uwebkoa-1.0.6.tgz 文件,你可以解压查看内容。

6. 发布到 npm

当一切准备就绪,执行发布命令:

bash 复制代码
npm publish

如果你使用的是作用域包(如 @yourname/uwebkoa),并且想设为公开包:

bash 复制代码
npm publish --access public

7. 验证发布

发布完成后,可以访问 npmjs.com/package/you... 确认包是否已经成功发布。

常见问题

版本冲突

如果出现版本已存在的错误,需要更新到一个更高的版本号再发布。

Git 工作目录不干净

如果出现 "Git working directory not clean" 错误,可以:

  1. 提交所有更改:

    bash 复制代码
    git add .
    git commit -m "准备发布版本 1.0.6"
  2. 或者使用 --no-git-checks 参数跳过 Git 检查:

    bash 复制代码
    npm publish --no-git-checks

权限问题

如果遇到权限错误,可能是因为:

  • 包名已被他人使用
  • 你没有该包的发布权限
  • 你的 npm 账号需要二次验证

升级更新新包

先升级一个版本号,使用下面的命令

bash 复制代码
npm version patch

发布更新到 npm 上

bash 复制代码
npm publish

后续维护

发布后,如需更新:

  1. 修改代码
  2. 更新版本号
  3. 重新发布

通过以上步骤,就可以将你的发布到 npm 仓库,让全球开发者能够便捷地使用你的模块了。

相关推荐
给月亮点灯|12 分钟前
Vue基础知识-Vue集成 Element UI全量引入与按需引入
前端·javascript·vue.js
知识分享小能手32 分钟前
React学习教程,从入门到精通,React 组件生命周期详解(适用于 React 16.3+,推荐函数组件 + Hooks)(17)
前端·javascript·vue.js·学习·react.js·前端框架·vue3
面向星辰41 分钟前
html音视频和超链接标签,颜色标签
前端·html·音视频
lxh011343 分钟前
LRU 缓存
开发语言·前端·javascript
yangzhi_emo1 小时前
ES6笔记5
前端·笔记·es6
Hexene...2 小时前
【前端Vue】el-dialog关闭后黑色遮罩依然存在如何解决?
前端·javascript·vue.js·elementui·前端框架
Jay_See2 小时前
JC链客云——项目过程中获得的知识、遇到的问题及解决
前端·javascript·vue.js
普通码农2 小时前
Element Plus 数字输入框箭头隐藏方案
前端
草字3 小时前
css flex布局,设置flex-wrap:wrap换行后,如何保证子节点被内容撑高后,每一行的子节点高度一致。
前端·javascript·css