咱们闲话不多说,直接开始!

由于我从没有使用过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(详细步骤,附Git使用方法)的更多相关文章

  1. 如何发布一个自定义Node.js模块到NPM(详细步骤)

    咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...

  2. Node.js CVE-2017-1484复现(详细步骤)

    0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...

  3. Node.js CVE-2017-14849复现(详细步骤)

    0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...

  4. Node.js模块封装及使用

    Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一.Node.js模块封装 1.创建一个名为censorify的文件夹 2.在c ...

  5. npm学习(六)之如何创建 Node.js 模块

    如何创建 Node.js 模块 Node.js 模块是一种可以发布到 npm 的包.当你创建一个新模块时,创建 package.json 文件是第一步. 你可以使用 npm init 命令创建 pac ...

  6. 实践案例丨教你一键构建部署发布前端和Node.js服务

    如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...

  7. Node.js模块

    每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js).JSON文本文件(.json)和二进制模块文件(.node). mymodul.js function Hell ...

  8. 编写原生Node.js模块

    导语:当Javascript的性能需要优化,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...

  9. 编写原生的Node.js模块

    导语:当Javascript的性能遭遇瓶颈,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...

随机推荐

  1. J2EE Oa项目上传服务器出现的乱码解决过程

    (= =)搞了许久觉得有必要记下来.. 由于我本地的mysql都设置好了,但是服务器的又不能去改它 毕竟还有其他人要用- -: 所以只能是我建的时候去设置一下了, 首先先建数据库 ,表;; creat ...

  2. C语言的知识与能力予以自评

    看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备?答:多学习几门生存技巧,首先先学会碰壁. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么?答:学习是人 ...

  3. lintcode-423-有效的括号序列

    423-有效的括号序列 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列. 样例 括号必须依照 "( ...

  4. "Scrum站立会议"浅析

    目录 Scrum Scrum Meeting功能及要点 Scrum Meeting点评 Scrum 定义:是一种软件开发流程.它并不是一项技术,这种开发方式的主要驱动核心是人,它采用的是迭代式开发. ...

  5. 免费各种查询API接口

    快递查询 http://www.kuaidi100.com/query?type=quanfengkuaidi&postid=390011492112 (PS:快递公司编码:申通"s ...

  6. 【loj6041】「雅礼集训 2017 Day7」事情的相似度 后缀自动机+STL-set+启发式合并+离线+扫描线+树状数组

    题目描述 给你一个长度为 $n$ 的01串,$m$ 次询问,每次询问给出 $l$ .$r$ ,求从 $[l,r]$ 中选出两个不同的前缀的最长公共后缀长度的最大值. $n,m\le 10^5$ 题解 ...

  7. var和let使用上的对比

    var和let比较 1. let没有预解析,不存在变量提升.在代码块中,只要let定义变量,在之前使用,都是报错.先定义完再使用. let a = 12; function fn(){ alert(a ...

  8. Luogu4926 倍杀测量者(二分答案+差分约束)

    容易想到二分答案.问题变为判断是否所有条件都被满足,可以发现这是很多变量间的相对关系,取个log之后就是经典的差分约束模型了.特殊的地方在于某些人的分数已被给定,从每个人开始跑一遍最短路判断一下是否能 ...

  9. 洛谷 P1987 摇钱树

    题目戳 题目描述 Cpg 正在游览一个梦中之城,在这个城市中有n棵摇钱树...这下,可让Cpg看傻了...可是Cpg只能在这个城市中呆K天,但是现在摇钱树已经成熟了,每天每棵都会掉下不同的金币(不属于 ...

  10. hive 连接(join)查询

    1.内连接 hive> select b.*,a.name from userinfo2 b,userinfo a where a.userid=b.userid; hive> selec ...