如何发布一个自定义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

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

3.创建README.md文件,文件内容可以留白(该文件的作用是放置你愿意写的任何自述说明)

二、生成模块

1.在你的项目根目录打开控制台窗口键入命令

npm pack

此时npm会将你的项目打包为一个后缀名为.tgz的压缩包,这就是你的Node.js模块

三、在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 init2.git add npmdesc.js  git add package.json  git add README.md  git add npmdesc-0.0.1.tgz3.git remote add origin [email protected]:BGOnline-CN/npmdesc.git4.git commit -m "如何发布一个自定义Node.js模块到NPM"
5.git pull --rebase origin master
6.git push -u origin master

以上步骤的作用(这里的截图仅做辅助理解,截图内容并不完善,具体执行步骤需参考第4步):

1.初始化本地git库

2.暂存文件(这里我并没有全部提交,你们初次提交时别忘记全部提交)

3.使本地与远程库进行连接

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

5.拉取远程库中的内容

6.将本地项目推送到远程库

由于我忘记添加README了,所以第6步并没有成功。在我重新添加README后,重新执行了第5,第6步

在进行git操作时或多或少的会出现各种无法预知的问题。如果刚好这时你遇到了,请不要害怕,细致的摸索及强大的搜索引擎可以帮助你!任何人都是这样摸爬滚打过来的。

当然不排除我的文章有疏漏 - -

四、发布到npm

1.在https://npmjs.org网站中建立账户(这里不做介绍)

2.在命令行中使用以下命令把创建的账户添加到环境中:

npm adduser

回车之后将会提示你输入用户名和密码以及邮箱,这里密码将不会明文显示。

出现下图说明命令执行成功!

3.修改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"
    ]
}

4.别忘了将修改后的package.json推送到git哦~这里我就不介绍了。

5.发布模块到npm

在项目根目录执行以下命令:

npm publish

如果出现以上错误,使用如下命令即可解决

npm config set registry http://registry.npmjs.org 

执行该命令后需要重新进行登录,使用第2步中的命令即可

如果一切正常,将会出现下图:

到这里你的 Node.js模块就已经发布成功了,你可以试试在npm官网中搜索它,并在项目中使用它了

时间: 2024-12-20 01:19:55

如何发布一个自定义Node.js模块到NPM(详细步骤)的相关文章

Node.js 模块和 NPM

1.模块概念 原生模块:Node.js API 提供的原生模块,原生模块在启动时已经被加载. 文件模块:动态加载模块,由原生模块 module 来实现和完成. 文件模块需要通过调用 require 方法来实现加载. Node.js 对两种模块都有缓存,不会重复开销去加载模块,只读取相应数据. 原生模块的调用 Node.js 的 API require 加载相应的 Node.js 模块,加载成功后返回一个 Node.js 模块对象. 该对象拥有该模块的所有方法和属性. var httpModule

Node.js模块与npm包管理工具

在Nodejs中,一模块为单位划分所有功能,并且提供了一个完整的模块加载机制. 模块在Nodejs中是一个非常重要的概念,它允许我们将第三方类库引入我们的应用程序中. 在Nodejs中你可以编写或引入几种模块文件: 1)  后缀名为.js的js脚本文件. 2)  后缀名为.json的JSON文本文件. 3)  后缀名为.node的经过编译的二进制模块文件. 在模块外部访问模块内的成员有两种方式: 1.  使用exports对象将对象暴露出去.例如:exports.msg=msg;就将msg暴露出

Node.js模块封装及使用

Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一.Node.js模块封装 1.创建一个名为censorify的文件夹 2.在censorify下创建3个文件censortext.js.package.json.README.md文件 1).在censortext.js下输入一个过滤特定单词并用星号代替的函数. var censoredWorlds=["sad","bad","mad&

Node.js 模块机制及常见面试问题解答

Node.js 模块机制采用了 Commonjs 规范,弥补了当前 JavaScript 开发大型应用没有标准的缺陷,类似于 Java 中的类文件,Python 中的 import 机制,Node.js 中可以通过 module.exports.require 来导出和引入一个模块. 在模块加载机制中,Node.js 采用了延迟加载的策略,只有在用到的情况下,系统模块才会被加载,加载完成后会放到 binding_cache 中. 面试指南 require的加载机制?,参考:模块加载机制 modu

node js 模块系统

Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码.JSON 或者编译过的C/C++ 扩展. 创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建一个 'hello.js' 文件,代码如下: var hello = require('./hello'); hello.w

3:Node.js模块系统

原文出自:http://www.w3cschool.cc/nodejs/nodejs-module-system.html Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码.JSON 或者编译过的C/C++ 扩展. 创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建

Developer - 如何自我保证Node.js模块质量

组里正在做SaaS产品,其中一些模块(Module)是Node.js实现,这里我们主要使用Node.js实现Web Server来提供服务. 在做SaaS项目之前,组里的开发模式是传统的Deverloper + QA的模式,这是传统的协作模式,Developer负责写代码开发,当然也会有基本的自测,QA负责测试,遇到问题,提Bug给Developer去修复,Developer修复Bug后,由QA来验证并记录Bug.但这样的协作模式已不适合SaaS产品的开发,SaaS产品更新迭代快,模块众多,这就

本地安装node.js模块

一.需求 单位电脑不让上网,但是需要用到一个node.js模块,elasticdump. 二.解决 1.自己电脑上下载模块: npm install elasticdump -g 注意:必须要加 -g,因为需要全局使用.非全局的模块复制到电脑上,还没找的方法运行模块. 2.复制拷贝 a.复制 操作1步骤会默认下载到C:\Users\T470s\AppData\Roaming\npm\node_modules\elasticdump ,复制elasticdump文件夹到U盘, 再到C:\Users

Node.js安装与NPM使用介绍

Node.js是基于Chrome Javascript运行时的平台.是运行在服务端的JavaScript. Centos7下安装Node.js,二进制包安装方式.1.下载:下载地址:http://nodejs.cn/download/ .下载二进制包,不下载源码,源码安装需编译安装,make.make install.下载版本:node-v10.8.0-linux-x64 2.配置环境变量vim /etc/profile.d/nodejs.sh export NODE_HOME=/usr/loc