在node.js环境下运行js代码,我们可以借助npm网站上各种各样的包,来帮助我们开发,这样大大提高了我们的开发效率,简化代码。那么我们自己可以在npm上发一个自己写的包吗?答案是可以的。下面就手把手教你如何在npm上发个包。
首先我们需要去npm官网去注册一个npm账号
打开npm官网,点击sign up进入注册页面。进入注册页面后就是一个常规的英文注册页面,我们根据经验填写Full Name、Public Email、Username、Password即可。此时,我们要记住账号密码和邮箱,因为后面发包我们是以终端命令的形式登录npm账号。另外,我们一定要去邮箱进行邮箱验证,不然npm账号不能用。
然后在终端登录npm账号
打开终端执行npm login命令,一次输入用户名、密码、邮箱。密码输入时是没有任何字符提示的,自己要正确输入。另外,在运行 npm login命令之前,必须把下包的服务器地址切换为npm的官方服务器(nrm use npm),否则会发包失败。
把包发布到npm上
将终端切换到包的根目录之后,运行npm publish命令,即可把包发布到npm上(注意:包名不能雷同)
上面是发包的整个流程,简单讲就是去npm官网注册账号,在终端登录账号,输入npm publish命令发包。另外重要的就是准备一个包了。下面介绍一下怎么准备一个复合规范的包。只有包准备的复合规范我们发包的时候就不会遇到各种各样的bug。
首先我们准备一个文件夹,如outman。点开outman文件夹,打开终端初始化文件夹,得到一个package.json的文件。
初始化文件夹 npm init -y
右键选择用VScode打开文件,新建一个index.js文件。
在index.js中写入自己想做的包的功能,如日期格式化。
function dateFormate(datestr) {
const dt = new Date(datestr)
const y = dt.getFullYear()
const m = addZero(dt.getMonth() + 1)
const d = addZero(dt.getDate())
const hh = addZero(dt.getHours())
const mm = addZero(dt.getMinutes())
const ss = addZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
function addZero(n) {
return n>9?n:'0'+n
}
module.exports = {
dateFormate
}
终端登录后,publish就行了。当然再详细一点,要写一个readme.md的说明文件。