使用npm发布Node.JS程序包教程


Posted in Javascript onMarch 02, 2015

npm是Node.JS的程序包管理器。进行Node.JS开发时,经常使用它安装/卸载程序包。实际上,发布程序包的工作也是由它来完成的。

配置package.json

要打包程序,首先要配好各项设置,这些设置都由程序包根目录下的package.json指定。package.json的内容必须是严格的JSON格式,也就是说:

1.字符串要用双引号括起来,而不能用单引号;
2.属性名一定要加双引号;
3.最后一个属性后千万不要多加一个逗号。

配置对象的属性很多,具体可以参阅这里,这里列一下常用的项目:

1.name:程序包名,不能跟已有的程序包重复。
2.version:版本号。
3.description:一段简短的介绍。
4.author:作者信息。包含name、email、url三项属性。
5.bin:如果程序中有可执行文件(主要是命令行里面调用的),就在这里指定,可以指定多个。
6.main:使用require调用本程序包时的程序入口。
7.dependencies:依赖的程序包,可以指定版本号。
配置好package.json后,可以先在本地打包安装一次,测试程序运作是否正常,安装命令为:

npm install <本地路径>

另外,还有一条潜规则要注意,如果你希望程序包中的可执行程序在Node.JS的环境中运行,那么,请在程序入口文件的最前面加上这样一行:
#!/usr/bin/env node

如果没有这一行,它将以系统默认的方式打开,而不是在Node.JS的环境中运行。

注册npm帐号

要把程序包发布到npm,还需要先注册一个帐号。npm并没有提供网页版的注册向导。注册也要通过命令行来进行:

npm adduser

执行此命令后,会依次出现输入用户名、Email、密码的提示,输入好之后等待一会儿就可以了。

发布程序包

准备工作都做好了,执行下面的命令就可以发布程序包:

npm publish <本地路径>

如果要更新程序包,只要修改一下package.json中的版本号,再重新执行发布命令就可以了。
Javascript 相关文章推荐
JavaScript中null与undefined分析
Jul 25 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
JS实现程序暂停与继续功能代码解读
Oct 10 Javascript
js将字符串转成正则表达式的实现方法
Nov 13 Javascript
javascript实现依次输入input自动定焦
Dec 23 Javascript
jQuery平滑旋转幻灯片特效代码分享
Sep 07 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
Vue递归实现树形菜单方法实例
Nov 06 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 #Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 #Javascript
Javascript动画的实现原理浅析
Mar 02 #Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 #Javascript
EasyUI中实现form表单提交的示例分享
Mar 01 #Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 #Javascript
EasyUI实现第二层弹出框的方法
Mar 01 #Javascript
You might like
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
第五节 克隆 [5]
2006/10/09 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
php数组使用规则分析
2015/02/27 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
Javascript之String对象详解
2016/06/08 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
python线程池threadpool使用篇
2018/04/27 Python
如何基于python实现脚本加密
2019/12/28 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
常务副总经理岗位职责
2014/04/12 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
购房个人委托书范本
2014/10/11 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
公司员工培训管理制度
2015/08/04 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL