还没发布过npm包?简单几步教会你

注册npm账号

官网地址:https://www.npmjs.com/

查看npm镜像,如果之前更换过,需要重置

npm config get registry

重置镜像路径

墙内的同学都习惯用淘宝镜像,这将不能访问npm账号,使用命令切换:

npm config set registry https://registry.npmjs.org

之后有必要可以再切回淘宝镜像:

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

创建你的npm包

项目git仓库下执行:


npm init

根据提示输入npm包信息,package.json创建完毕

name:项目的包名,先在npm官网搜索下,或者npm install你想用的包名,以免名称已存在。

version:版本号,以后更新也要用到。

entry point:也就是项目main入口,默认根目录的index.js,调用这个包首先访问的文件。

其他选项不是很重要,后面可以直接在package.json文件中修改。

在终端登录npm

npm adduser

输入npm账号的用户名、密码、邮箱,登录成功显示:

Logged in as xxx on https://registry.npmjs.org/.

开始发包

npm publish

第一次执行可能会提示:you must verify your email before publishing a new package: https://www.npmjs.com/email-edit,按照提示打开这个网址,输入第2步配置的邮箱,然后登录邮箱点击邮件进行验证即可。

尝试获取npm包

可以先创建一个空目录:

npm install <package-name>

下载完包后根目录创建一个test.js

var t = require('xxx') // xxx为包名
console.log(t)

运行node test,查看控制台输出是否打印插件内容。

更新npm包

修改package.json中的版本号,同样执行:

npm publish

撤销npm包

理论上npm包具有唯一性不可删除,已发布无法撤销只能更新,但是可以执行以下命令来提示该包不再维护:

npm deprecate xxx(包名) '这个包我已经不再维护了'
    

简单脚本

在你要发布的项目根目录创建一个文件 publish

#!/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

每次发布时运行命令 sh publish 输入账户信息即可发布。

注意先修改 package 的 version,版本号更新才代表发布更新。