使用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 相关文章推荐
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
关于div自适应高度/左右高度自适应一致的js代码
Mar 22 Javascript
对frameset、frame、iframe的js操作示例代码
Aug 16 Javascript
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
JSON遍历方式实例总结
Dec 07 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 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
大师制作的中短波矿石收音机
2020/04/02 无线电
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
php调用shell的方法
2014/11/05 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
python实现类的静态变量用法实例
2015/05/08 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
Mac 上切换Python多版本
2017/06/17 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
用python实现学生管理系统
2020/07/24 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
高分子材料个人求职信范文
2013/09/25 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
大学四年个人总结
2015/03/03 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书