使用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脚本语言在网页中的简单应用
May 13 Javascript
jQuery Ajax使用 全解析
Dec 15 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
详解参数传递四种形式
Jul 21 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
解析预加载显示图片艺术
Dec 05 Javascript
JS对象深度克隆实例分析
Mar 16 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
vue中created和mounted的区别浅析
Aug 13 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 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中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
jquery实现图片预加载
2015/12/25 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Python匿名函数及应用示例
2019/04/09 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python openssl模块安装及用法
2020/12/06 Python
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
销售会计工作职责
2013/12/02 职场文书
打架检讨书50字
2014/01/11 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
预备党员公开承诺书
2014/05/28 职场文书
大学生操行评语大全
2014/12/31 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA