Npm包管理器不用多讲,用过三大框架的应该都用过。今天讲一下怎么发布自己的npm包。

首先建一个文件夹,然后命令工具进入这个目录,执行npm init:

name 项目名称

version 项目的版本号

description 项目的描述信息

entry point 项目的入口文件

test command 项目启动时脚本命令

git repository 如果你有 Git 地址,可以将这个项目放到你的 Git 仓库里

keywords 关键词

author 作者

license 项目要发行的时候需要的证书,可忽略它

执行完毕生成package.json文件,打开就能看见这些信息。

因为我们默认的入口文件,所以在当前目录新建index.js,然后发现只能用index.js,package.json改了main的值也不行,配置文件的这个应该是只能用于webpack。

查看了很多包,发现没有多少人会直接把包的功能都写在index.js里面,应该是出于拓展性考虑。

所以这边的目录是这样的:

跟随大流使用lib文件夹,我这个包打算集成一些小功能,比如地址截取、cookie、日期转化等JavaScript功能,index.js就一句话:

module.exports = require('./lib');

然后其他操作都放在lib文件夹里面,这样就可以增加很多js文件,然后统一都集合到index.js里面,拓展性很强。还有要注意的就是lib里面暴露的也要是index.js。

Lib里面index.js我写了一个地址截取的方法:

export const urlCut = (key) => {
    var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}
复制代码

写好之后放到项目的node_modules,然后

import { urlCut } from 'w-collect';

console.log(urlCut);

验证是否可用,可用的话就准备发包。

Npm账号要自己去申请,在我们项目目录打开命令行:

Npm login

然后就登录,这边注意输入密码的时候是看不见的。

接着就是发布:npm publish

发布完成去npm官网搜索你自己的包,我发布的是wade-tools,可用下载,但是没有其他任何简介,暂时都没有写。

这边提一下,发包不超过24小时可以撤销发布的包,要是只是测试尽量撤销,然后不能再用这个名字发布。发包还可能出现一些错误,因为本人只遇见没有验证邮箱的错误,所以就不整理了。