使用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 相关文章推荐
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
使用JQ完成表格隔行换色的简单实例
Aug 25 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
inner join 内联与left join 左联的实例代码
Sep 18 Javascript
zepto.js 实时监听输入框的方法
Dec 04 Javascript
vue 全局封装loading加载教程(全局监听)
Nov 05 Javascript
基于javascript实现放大镜特效
Dec 03 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
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实现ODBC数据分页显示一例
2006/10/09 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
JQuery each打印JS对象的方法
2013/11/13 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
js实现轮播图特效
2020/05/28 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
浅谈Python爬虫基本套路
2019/03/25 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
对python中的装包与解包实例详解
2019/08/24 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
python定义具名元组实例操作
2021/02/28 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
个人简历自荐信
2014/06/26 职场文书
电子专业自荐信
2014/07/01 职场文书
四风自我剖析材料
2014/09/30 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
预备党员半年考察意见
2015/06/01 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL