我们前端[槑友会]最近开始轮流进行技术分享,在收集大家感兴趣的list中,"如何做一个npm package"吸引到了我,于是自己就开始查看资料,觉着其实整个过程还是蛮简单的。整理出这个笔记,给自己的分享做提纲。
一、基础知识查漏补缺?
1、什么是npm
npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
1)、允许用户从npm服务器下载别人编写的第三方包到本地使用。
2)、允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
3)、允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。
2、npm和cnpm的区别
因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事。来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”
cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm
二、构建npm package的流程
1、注册账户
想要在Npm上发布自己的软件包,就必须先在npm官网上注册一个账号
注册地址
注册完成后,我们就可以在命令行中登录刚刚注册的账号了:
image.pngOK登录成功。
2、创建第一个npm模块
Node.js模块就是发布到npm的代码包
1)、在目标文件夹目录下用npm init来创建package.json文件
这个过程中命令行会逐步提示你输入这个模块的信息,
其中模块的名字和版本号是必填项
创建好的package.json是长这样的
2)、编写入口文件
如果你使用默认值的话,那就会是index.js.
创建完package.json文件之后,你就要开始写代码包里的内容了,这里举个最简单的例子,在默认的index.js里写一个要导出的函数,这个函数也就是别人的代码里可以import或者require的。
exports.showMsg = function () {
console.log("This is my first module");
};
这样的话,你的node模块就已经创建完成了
3、发布到npm服务器上
npm publish 发布包
发布过程会把整个目录发布,不想发布的内容模块,可以通过 .gitignore
或 .npmignore
文件忽略
发布成功之后可以去npm官网搜索一下,是否已经存在
4、npm publish 存在的问题:
1)
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You do not have permission to publish "npm_package". Are you logged in as the correct user? : npm_package
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/wendy/.npm/_logs/2018-01-15T03_36_04_111Z-debug.log
可能是这个名称已经被其他开发者发布使用
2)
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! you must verify your email before publishing a new package: [https://www.npmjs.com/email-edit](https://www.npmjs.com/email-edit) : hello_npm_cw
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/wendy/.npm/_logs/2018-01-15T06_55_54_871Z-debug.log
注册时候没有验证邮箱, 需要去npm官网发一个验证到邮箱
验证.png三、创建一个案例,引用刚刚上传的包
刚刚我们已经成功发布出去一个名叫hello_npm_cw的package,
这时候可以新建一个项目,引用刚刚发布的包测试一下,运行npm install hello_npm_cw
,然后在这个目录下会出现一个叫node_modules
的文件夹,你之前写的包就会出现在这个文件夹下面。
然后写一个index.js,代码如下
var test = require(‘hello_npm_cw');
test.showMsg();
运行index.js
node index.js
运行结果显示
This is my first module
那么刚刚上传的包,目前已经可以使用,到目前的话,你已经成功创建了一个npm包了
四、如何更新你的npm package
当你包的内容修改之后,在命令行执行
npm version <update_type>
update_type就是版本号的意思,会自动更新package.json里面的版本号
然后重新 npm publish,更新就会完成
在简书上发布相关文章是对自己不断学习的激励;如有什么写得不对的地方,欢迎批评指正;给我点赞的都是小可爱~_~
网友评论