使用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与图片美化checkbox和radio控件的代码(打包下载)
Nov 11 Javascript
关于js获取radio和select的属性并控制的代码
May 12 Javascript
jquery高效反选具体实现
May 05 Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
Node.js  事件循环详解及实例
Aug 06 Javascript
编写React组件项目实践分析
Mar 04 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
Vue记住滚动条和实现下拉加载的完美方法
Jul 31 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
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
万能的php分页类
2017/07/06 PHP
JS判断不能为空实例代码
2013/11/26 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
Python脚本实现12306火车票查询系统
2016/09/30 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
使用TensorFlow实现SVM
2018/09/06 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
关于赌博的检讨书
2014/01/08 职场文书
服务标语口号
2014/07/01 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
2015年三万活动总结
2015/03/25 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
浅析Python实现DFA算法
2021/06/26 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android