如何发布一个自定义Node.js模块到NPM(详细步骤)
咱们闲话不多说,直接开始!
由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致。
文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍:
本文本着,以极少的文字说明以及极少的代码书写为原则来给大家演示!
文章中上传的模块不具备任何意义!
一、封装node.js模块时的必需项
1.创建package.json
每一个完整封装的node模块,必须含有一个参数明确的package.json文件!
以下为package.json的最精简配置:
{
"name": "npmdesc",
"version": "0.0.1",
"main": "npmdesc.js"
}
package.json详细配置参照表:

2.创建npmdesc.js
exports.desc = function() {
console.log("如何发布一个自定义Node.js模块到NPM");
}
3.创建README.md文件,文件内容可以留白(该文件的作用是放置你愿意写的任何自述说明)
二、在github上建立包含该模块代码的公共存储库
1.注册github账户(这里不做详细阐述,假定你已经有了github账户)
2.创建项目

3.如果你初次使用git,请自行了解git的使用方法(这里仅做简单描述)
这里推荐查看廖雪峰老师对git的讲解:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1.ssh-keygen -t rsa -C "你注册所使用的邮箱"
2.登陆GitHub,打开“Account settings”,“SSH Keys”页面点“Add SSH Key”,填上ssh,在Key文本框里粘贴id_rsa.pub文件的内容。 以上步骤是使你的账户与git建立通讯的核心步骤!
仅用这些操作远远不够,如果你初次使用git,那么这一步可能将会使你看的云里雾里摸不清头脑,甚至失去继续了解下文的信心,所以我建议初学者先进行git的简单了解。
4.推送项目到刚刚创建的公共存储库(这里假定你已完成以上所有内容,并对git的使用有了简单的认识)
在你的项目根目录中依次运行以下git命令:
1.git init
2.git add npmdesc.js
git add package.json
git add README.md
3.git remote add origin git@github.com:BGOnline-CN/npmdesc.git
4.git commit -m "如何发布一个自定义Node.js模块到NPM"
5.git pull --rebase origin master
6.git push -u origin master
以上步骤的作用(这里的截图仅做辅助理解,截图内容并不完善,具体执行步骤需参考第4步):
git init (初始化本地git库)

git add (暂存文件)

git remote add origin git@github.com:XXXX/XXXX.git (使本地与远程库进行连接)

git commit -m "XXXX" (提交暂存到本地库,-m 为你的提交信息,这个是必填的!你需要告诉git你为什么要进行本次提交。)

git pull --rebase origin master (拉取远程库中的内容)

git push -u origin master (将本地项目推送到远程库)

5.修改package.json文件,填入你的项目在git公共存储库中的信息及你希望npm进行搜索时的关键字
{
"name": "npmdesc",
"version": "0.0.1",
"main": "npmdesc.js",
"repository": {
"type": "git",
"url": "https://github.com/BGOnline-CN/npmdesc"
},
"keywords": [
"npmdesc"
]
}
三、生成模块
1.在你的项目根目录打开控制台窗口键入命令
npm pack
此时npm会将你的项目打包为一个后缀名为.tgz的压缩包,这就是你的Node.js模块
2.别忘了将修改后的package.json及刚刚打包好的.tgz推送到git哦~这里我就不介绍了。
可能在进行git操作时或多或少的会出现一些你暂时无法理解的问题。如果刚好这时你遇到了,请不要害怕,细致的摸索及强大的搜索引擎可以帮助你!任何人都是这样摸爬滚打过来的。
当然不排除我的文章有疏漏 - -
四、发布到npm
1.在https://npmjs.org网站中建立账户(这里不做介绍)
2.在命令行中使用以下命令把创建的账户添加到环境中:
npm adduser
回车之后将会提示你输入用户名和密码以及邮箱,这里密码将不会明文显示。
出现下图说明命令执行成功!

3.发布模块到npm
在项目根目录执行以下命令:
npm publish

如果出现以上错误,使用如下命令即可解决
npm config set registry http://registry.npmjs.org
执行该命令后需要重新进行登录,使用第2步中的命令即可
五、发布成功
如果一切正常,将会出现下图:

到这里你的 Node.js模块就已经发布成功了,你可以试试在npm官网中搜索它,并在项目中使用它了
如何发布一个自定义Node.js模块到NPM(详细步骤)的更多相关文章
- 如何发布一个自定义Node.js模块到NPM(详细步骤,附Git使用方法)
咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...
- Node.js CVE-2017-1484复现(详细步骤)
0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...
- Node.js CVE-2017-14849复现(详细步骤)
0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...
- Node.js模块封装及使用
Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一.Node.js模块封装 1.创建一个名为censorify的文件夹 2.在c ...
- npm学习(六)之如何创建 Node.js 模块
如何创建 Node.js 模块 Node.js 模块是一种可以发布到 npm 的包.当你创建一个新模块时,创建 package.json 文件是第一步. 你可以使用 npm init 命令创建 pac ...
- 实践案例丨教你一键构建部署发布前端和Node.js服务
如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...
- Node.js模块
每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js).JSON文本文件(.json)和二进制模块文件(.node). mymodul.js function Hell ...
- 编写原生Node.js模块
导语:当Javascript的性能需要优化,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...
- 编写原生的Node.js模块
导语:当Javascript的性能遭遇瓶颈,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...
随机推荐
- MySQL安装指南
近期领导突然说要用MySQL,我立刻当天晚上就研究了一下. http://www.mysql.com/这是官网,还好能够訪问.好多年前已经被oracle收购.分为企业版和社区版: MySQL Ente ...
- ASP.NET MVC创建的网站
ASP.NET MVC创建的网站 最近在写一个网站,昨天刚写完,由于要和朋友一起测试,但是他电脑上没有环境,所以希望我在自己电脑上部署一下,让他直接通过浏览器来访问来测试,所以从昨晚到今天上午,通 ...
- ORACLE经常使用的命令
一个.ORACLE启动和关机 1.在独立环境中 要启用或禁用ORACLE该系统必须切换到ORACLE用户,例如以下 su-oracle a.启动ORACLE系统 oracle>svrmgrl S ...
- JS中通过call方法实现继承
原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...
- jQuery Easy UI LinkButton(button)包
LinkButton(button)包,easyui其中一个基本组成部分 演示样例: <!DOCTYPE html> <html> <head> <title ...
- css优先级汇总
原文:css优先级汇总 我所理解的css优先级:当两个或者多个样式作用于同一个元素时,就会出现css优先级的问题. 多重样式优先级:当内联样式.内部样式和外部样式作用于同一个元素时,属于多重样式的范畴 ...
- JavaScript实例技巧精选(10)—计算器实例2
>>点击这里下载完整html源码<< 这是截图: 利用Javascript和html实现的另一个计算器实例,核心代码如下: <script language=" ...
- 受益匪浅的材料orz
看到了xhr大神制作的材料 仰慕良久,受益匪浅,必将永记在心,蒟蒻长跪不起 考前一定要膜拜!
- [置顶] Weblogic节点管理
配置节点管理之后能方便管理,可以在控制台启动停止被管服务器,一般配置步骤:创建受管服务器,创建machine,屏蔽SSL主机名验证,修改nodemanager.properties,启动nodeman ...
- EF Power Tools 参数错误 HRESULT:0x80070057 (E_INVALIDARG))
数据库名称使用数字开头,使用EF Power Tools生成映射时,会提示:“参数错误. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))”. 解 ...