npm 包发布与升级--拥有自己的npm包

本文详述了npm包的发布与升级流程,从理解npm的本质,到注册npm账户,准备package.json文件,设置入口文件,再到发布和使用npm包。强调了name、version和main字段的重要性,以及遇到403错误时的解决办法。此外,还提醒了node_modules不需要发布,README.md的添加可提升包的易用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm 对于大多数前端开发来说早已经不在陌生,是否也想过拥有一个自己的npm 包,提供给自己或者别人使用;

npm 本质和理解

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准

npm 包的发布和管理,可以简单理解为上传代码和下载并使用它们。这样可以快速的发布代码哈哈

前期准备

1、需要有一个账户,毕竟是要传到别人的服务器上,注册地址:

https://www.npmjs.com/

记住注册账户的名字和密码,npm 发布的时候要用,当然还有其他用处;
2,准备需要发布的代码,没有代码发布啥,当然空的文件也可以发,只是没有用处,因为npm包可以理解为上传代码。

准备 npm 发布的代码

如果你已经有代码了,就看一下注意的点就可以了。如果没有,可以像下面一样写一个测试的,达到最终知道如何发布,和发布代码的时候注意事项即可

1、一定要有一个package.json 文件和在根目录同级

这个文件可以通过 npm init 实现,也可以自己随便找个复制修改,没有具体要求,但是文件名字一定是package.json ,需要注意的有如下几个点一定要有

1.1 name 字段一定要有,用来告诉别人和npm服务器这个包的名字叫什么,引用的时候也只能是这个名字,同时这个名字全球唯一,不能重复,不然发布会失败,因此赶快去抢占名字吧,哈哈

"name": "lmqtest",

1.2 version 表示版本号,为了记录修复记录和升级,一般要求必须有

"version": "1.0.0"

version 一般小问题修复 都是在 最后一个数添加版本,大的升级才会使用到前面的位数

1.3 main 字段 这个是致命的重要 ,入口的地址,这个包的指向入口

"main": "index.js"

main 入口的配置可以是同个目录的任何文件,只要这个js对外提供了接口就可以

剩下的可以酌情自己看看一下我的

{
  "name": "lmqtest",
  "version": "1.0.0",
  "description": "对axios二次封装",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "木子了前端",
    "write"
  ],
  "files": [
    "dist",
    "lib",
    "example"
  ],
  "author": "木子聊前端",
  "license": "ISC",
  "dependencies": {
  },
  "devDependencies": {
  }
}

一个对外提供对外调用的js文件

这个文件一般通过es6 的export 对外提供方法或者对象,或者叫暴露接口吧,这个js文件就入口地址main对应的,逻辑可以写在这个js文件,也可以写在其他目录下面,最后通过,这个js文件对外提供方法,这个文件名字随便写,有些人喜欢叫index.js ;

格式

export default function(){
	// 省略代码
}

或者

export {
	
}

却别 是否提供默认方法而已,具体的业务方法因具体需要而定
现在只想写一个试试可以这样

export default function(){
	console.log('我是一个npm测试包');
}

npm 发布

整理一下代码和目录结果目前大概是这个样子
lmqtest–根目录
index.js --入口js文件和逻辑
packge.json – 配置文件

进入的我们的 根目录 在命令模式下
1、npm adduser 用户名、密码、邮箱)-- 注册帐号
2、npm publish(发布到npmjs.org) 这个就表示上传了。 专业叫发是发布

不出意外一切正常的话就发布成功了。过1分钟左右登录到 https://www.npmjs.com/ 可以看到自己发布的包。

npm 使用

那么就可以像使用其他人包一样 npm i lmqtest 下载下来使用了

import tests from ‘lmqtest’
tests() // 我是一个npm测试包

发布出错的可能

遇到403

 ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! no_perms Private mode enable, only admin can publish this module:...

大概是镜像库的问题,必须是官网才行

检查

npm config get registry

// https://registry.npm.taobao.org/

如果是淘宝或者其他的,那么设置为官网

npm config set registry=http://registry.npmjs.org

发布完成之后可以在设置回去 这个是全局设置

npm config set registry=https://registry.npm.taobao.org/

403的另外一种情况 更新了代码但是没有更改版本号也会报错,因此在更改代码之后一定要修改版本号

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT http://registry.npmjs.org/lmqhttp - You cannot publish over the previously published versions: 1.0.1.
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

其他情况不大可能出错,因为就是一个上传的过程,除了上传地址错误很少有其他的

其他补充

1、发布npm包为的是代码更加友好的使用和模块化,没有其他神话
2、发布的过程已经下载的依赖包不用上传也就是 node_modules 是不用发布,当执行 npm install 的时候会自动下载,只需要在package.json 里面标注版本即可
3、README.md 这个可以加上,这是一个说明文件,虽然非必须,但是可以写明 怎么使用,有什么用关于当前包

https://github.com/chinaynlmq-a/lmqhttp.git
这个地址是比较完整的可以看看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值