如何将你写的 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 仓库,让全球开发者能够便捷地使用你的模块了。

相关推荐
天蓝色的鱼鱼2 分钟前
shadcn/ui,给你一个真正可控的UI组件库
前端
布列瑟农的星空6 分钟前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
Mr Xu_11 分钟前
Vue 3 中计算属性的最佳实践:提升可读性、可维护性与性能
前端·javascript
jerrywus18 分钟前
我写了个 Claude Code Skill,再也不用手动切图传 COS 了
前端·agent·claude
玖月晴空22 分钟前
探索关于Spec 和Skills 的一些实战运用-Kiro篇
前端·aigc·代码规范
子兮曰26 分钟前
深入理解滑块验证码:那些你不知道的防破解机制
前端·javascript·canvas
会一丢丢蝶泳的咻狗1 小时前
Sass实现,蛇形流动布局
前端·css
攀登的牵牛花1 小时前
前端向架构突围系列 - 状态数据设计 [8 - 4]:有限状态机 (FSM) 在复杂前端逻辑中的应用
前端
Lsx_1 小时前
前端视角下认识 AI Agent 和 LangChain
前端·人工智能·agent
我是伪码农2 小时前
Vue 智慧商城项目
前端·javascript·vue.js