如何发布一个自己的 npm 包?
一. 准备工作
1. 注册 npm 账号
还没有 npm 账号?去官网注册: https://www.npmjs.com/
需要记住用户名、密码、邮箱
2. 查看本地 npm 镜像,如果不是默认的,需要改回来
npm config get registry
重置镜像路径
npm config set registry https://registry.npmjs.org
之后有需要再切换回国内加速镜像
npm config set registry https://registry.npm.taobao.org
二、创建 npm 包
在本地创建包目录,名为 selfinfo
,进入到目录下面执行
npm init
初始化创建 package.json
包的信息
name:包名。
version:版本号,以后更新也要用到。
description:包的描述性文字。
main:包的入口文件,默认根目录的index.js。
还有其它就不一一介绍了
注意这里 name
要唯一,不能和已发布的包重名,你可以到官网(https://www.npmjs.com/)搜索是否已经有了
{ "name": "selfinfo", "version": "1.0.0", "description": "The introduction of Timfan", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "timfan", "license": "ISC" }
然后我们在包目录中创建示例代码 index.js
export default "hello world!";
三、发布 npm 包
1. 在终端登录 npm 包管理平台
npm adduser
执行命令后依次输入用户名、密码、邮箱,最终输出如下内容表示登录成功。
Logged in as timfan on https://registry.npmjs.org/.
2. 开始发布
npm publish
第一次执行可能会提示:you must verify your email before publishing a new package: www.npmjs.com/email-edit,按照提示打开这个网址,输入第2步配置的邮箱,然后登录邮箱点击邮件进行验证即可。
E:\private\selfinfo>npm publish npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. npm notice npm notice package: selfinfo@1.0.0 npm notice === Tarball Contents === npm notice 236B package.json npm notice === Tarball Details === npm notice name: selfinfo npm notice version: 1.0.0 npm notice filename: selfinfo-1.0.0.tgz npm notice package size: 254 B npm notice unpacked size: 236 B npm notice shasum: 02b5c81a596c463cc7a9e060b5494c2f3a2d5ef1 npm notice integrity: sha512-+OrYPim/sQhYy[...]/3vc3/qaOLJ6g== npm notice total files: 1 npm notice npm notice Publishing to https://registry.npmjs.org/ + selfinfo@1.0.0
我们可以登录官网自己账号下查看发布的包是否成功
或者通过命令 npm install <package-name>
E:\private\test>npm install selfinfo npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. added 1 package, and audited 2 packages in 47s found 0 vulnerabilities
3. 更新包
后面如果我们需要升级包,改了包的代码,同步更新到包管理平台 npm,需要修改 package.json
中的版本号,还是执行
npm publish
四、优化发布过程
为了避免每次发布、更新 npm 包需要执行一堆的命令,可能很难记住先后顺序,我们将执行的命令写进终端可执行的文件 shell 脚本中:
#!/usr/bin/env bash set -e # 修改npm源地址 npm config get registry npm config set registry=http://registry.npmjs.org # 登陆输入自己的npm账号和密码,还有邮箱 echo '登录npm' npm login echo "发布中..." npm publish # 改回npm源地址 npm config set registry=https://registry.npm.taobao.org echo -e "\n发布成功\n" exit
则每次只需执行该 shell 文件即可:sh "文件名"
评论
还没有评论...留下你的评论!