1.npm是什么?

npm 是Node 的模块管理器,功能极其强大。 它是Node 获得成功的重要原因之一。 正因为有了npm,我们只要一行命令,就能安装别人写好的模块。

npm的基础知识这边就不做表述的,下面提供一些npm基础知识的参考
npm官网
npm 模块安装机制简介

那么下面来介绍一下,如何创建自己的第一个node模块,并把这个模块上传到npm上面,让别人可以用我们的模块


2.创建第一个node模块

Node.js模块就是发布到npm的代码包,

创建一个新模块的第一步就是创建一个package.json文件。
你可以用npm init来创建package.json文件。
这个过程中命令行会逐步提示你输入这个模块的信息,
其中模块的名字和版本号是必填项

创建好的package.json是长这样的


你还需要一个入口文件,
如果你使用默认值的话,那就会是index.js.
创建完package.json文件之后,你就要开始写代码包里的内容了,
这里举个最简单的例子,在默认的index.js里写一个要导出的函数,
这个函数也就是别人的代码里可以import或者require的。

exports.showMsg = function () {
  console.log("This is my first module");
};

这样的话,你的node模块就已经创建完成了

3.如何发布到npm服务器上

3.1.注册一个npm账号,2个方式,最简单的就是去npm官网注册
  • npm注册
  • 还有一个方式就是 npm adduser,按照它的提示去创建
3.2.首次需要登录,npm login 存储证书到本地,后面就不需要每次都登录的

登录需要输入用户名,密码,还有邮箱,这些都是刚刚注册时候填写的

3.3.开始发布

npm publish 发布包
发布过程会把整个目录发布,不想发布的内容模块,
可以通过 .gitignore.npmignore 文件忽略

发布成功之后可以去npm官网搜索一下,是否已经存在
npm

发布过程可能会遇到这样的一个问题

使用 cnpm 的注意报错:
no_perms Private mode enable, only admin can publish this module
设置回原本的就可以了
npm config set registry registry.npmjs.org
发布完成之后,如果还想回到之前的cnpm,使用下面的命令
npm config set registry registry.npm.taobao.org

4.创建一个案例,引用刚上传的包

假设已经成功发布了,并且包名叫做toniqian-test-module
这时候可以新建一个空目录,cd进去,运行npm install toniqian-test-module,然后在这个目录下会出现一个叫node_modules的文件夹,你之前写的包就会出现在这个文件夹下面。

然后写一个index.js,代码如下

var test = require('toniqian-test-module');
test.showMsg();

运行index.js

node index.js

运行结果显示

This is my first module

那么刚刚上传的包,目前已经可以使用,到目前的话,
你已经成功创建了一个npm包了

5.如何更新npm包

当你包的内容修改之后,比如

exports.showMsg = function () {
  console.log("This is my second module");
};

修改了提示文字,那么我们需要 npm version
update_type就是版本号的意思,会自动更新package.json里面的版本号
然后重新 npm publish,更新就会完成

6.总结

创建一个npm包的过程就是这样的,如果期间还有什么问题,欢迎留言,感谢