如何发布一个npm包
程序员文章站
2022-05-31 23:43:01
...
最近写了一个非常简单的头像生成器脚本,给定用户名或者任何字符串,给定大小,就会生成字符串的第一个字符作为图片主体的头像。支持Unicode编码字符。支持转成stream
,支持转成buffer
。
Demo.
从0到发布到npm仓库需要踩才哪些坑呢?
将npm的registry设置为官方源
如果你不是淘宝npm镜像的用户,即可跳过这一步。
在国内,因为某些不可抗力。使用npm来安装node模块是非常慢的。所以大部分npm用户都使用了cnpm和淘宝的npm镜像,cnpm每10分钟和上游的npm同步。
但是如果想要发布npm包,就不能发布到cnpm了,就要将安装cnpm时候的设置的registry设置回官方的。
$ npm config set registry https://registry.npm.taobao.org
注册npm账号
将registry设置回npm官方源之后就可以注册账号了,如果你注册了就可以直接登录,npm login
或者 npm addUser
。
第一次执行npm addUser
会在npm注册一个账号。
完成后就自动登录了。登录了npm账号才可以发布包。
npm包结构
.
├── README.md
├── example
├── lib
├── node_modules
├── package.json
├── index.js
└── test
对于一个npm包来说,package json
是必须的。具体的package json
内容可以自己执行npm init
生成一个package json
来查看。
但是有几点是必须注意的。
-
author
这一项必须与当前的npm用户相同,否则是没有权限发布的。 -
main
指定了包的入口。如果没有指定就默认为根目录的index.js
-
name
作为你的包的名字,千万注意不要和npm上已有的包重名,npm不允许同名的包存在。所以发布如果报错
npm ERR publish 403
You do not have permission to publish 'somepackage'.Are you logged in as
the corrent user?:somepackage
最好先去npmjs.org
查看你的包名是否已经被别人使用过了,或者运行npm search xxx
来搜索。
发布
写好代码,index.js导出模块。
$ npm publish
就可以发布了
更新
更新package.json
中的版本号,再次运行
$ npm publish