使用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对象及属性
Feb 13 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
Mar 26 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
Bootstrap table 服务器端分页功能实现方法示例
Jun 01 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
使用console进行性能测试
2015/04/27 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
毕业生自荐书
2014/02/02 职场文书
中学生自我鉴定
2014/02/04 职场文书
销售2014年度工作总结
2014/12/08 职场文书
亲属关系公证书样本
2015/01/23 职场文书
物业保安辞职信
2015/05/12 职场文书
初一军训感言
2015/08/01 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript