使用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 相关文章推荐
符合标准的js表单提交的代码
Sep 13 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
Node.js 回调函数实例详解
Jul 06 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
vue超时计算的组件实例代码
Jul 09 Javascript
简述Vue中容易被忽视的知识点
Dec 09 Javascript
JS图片懒加载的优点及实现原理
Jan 10 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
ES6字符串的扩展实例
Dec 21 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 三维饼图的实现代码
2008/09/28 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
js确定对象类型方法
2012/03/30 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
python实现逻辑回归的示例
2020/10/09 Python
商场总经理岗位职责
2014/02/03 职场文书
公司授权委托书范文
2014/09/21 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2014年标准化工作总结
2014/12/17 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书