使用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非法字符过滤代码(骂人的话等等)
May 26 Javascript
window.location不跳转的问题解决方法
Apr 17 Javascript
JavaScript数组对象赋值用法实例
Aug 04 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
服务端预渲染之Nuxt(使用篇)
Apr 08 Javascript
轻松解决JavaScript定时器越走越快的问题
May 13 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
Jun 05 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
Vue vee-validate插件的简单使用
Jun 22 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面试中关于面向对象的相关问题
2019/02/13 PHP
详解PHP队列的实现
2019/03/14 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
js中new一个对象的过程
2017/02/20 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现的简单抽奖系统实例
2015/05/22 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
2015年毕业实习工作总结
2014/12/12 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
党支部意见范文
2015/06/02 职场文书
初中运动会前导词
2015/07/20 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
golang 在windows中设置环境变量的操作
2021/04/29 Golang