使用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,超强推荐base.js
Dec 23 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
js的with语句使用方法
Sep 21 Javascript
javascript 对象比较实现代码
Apr 27 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
低门槛开发iOS、Android、小程序应用的前端框架详解
Oct 16 Javascript
Vue3中toRef与toRefs的区别
Mar 24 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
几种显示数据的方法的比较
2006/10/09 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
PHP字符串处理的10个简单方法
2010/06/30 PHP
优化PHP程序的方法小结
2012/02/23 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python合并文本文件示例
2014/02/07 Python
Python中subprocess的简单使用示例
2015/07/28 Python
python如何读写csv数据
2018/03/21 Python
在python中用url_for构造URL的方法
2019/07/25 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Python无损压缩图片的示例代码
2020/08/06 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
客服实习的个人自我鉴定
2013/10/20 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
2015年幼师工作总结
2015/04/28 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang