怎样开辟并宣布一个可用的 JavaScript 模块 ?

Javascript 那末盛行,作为一个前端开辟者,或许前端入门者,宣布一个正式可用的 Javascript 模块,关于本身来讲应当生长很大。下面就以一个简朴的 Javascript 模块 filesize.js 来引见 github、travis-ci、npm 这些内容的组合运用。

一、目的概览

本文将运用 filesize.js 这个作为引见,这个是一个异常简朴的 js 库,统共代码也不到 20 行,然则功用完美,可以临盆运用。事实上 npm 上有不少简朴到几行代码搞定的模块。

  1. 起首宣布一个 js 模块,一定须要时代码开源,所以必需运用到 Github 作为代码治理。宣布到 npm 能不能不开源呢,固然可以,但npm install 获得以后就是你的源码。

  2. 宣布一个 js 模块,须要让他人运用,优越的测试必不可少(许多项目有下图的绿色小图标),所以须要给你的项目写完美的测试用例(testcase),然后应用 Github 上第三方的 ci 东西来实行,travis-ci 就是个中一个用的比较多的。

  3. 代码测试终了,没有任何问题以后,可以 npm 宣布模块了。

我们 filesize.js 到达的效果就是如许的:

《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

而且可以直接 npm install filesize.js 装置下载。下面离别引见申明。

二、Github 项目初始化

起首在 Github 上建立项目,注重想好项目的名字,名字最好可以和以后 npm 宣布的模块名字雷同(npm 模块名字不能和其他人已宣布的名字反复)。背面关于 Github 假如提交代码这些请自行找其他文章进修。

须要强调的是:

  1. 注重完美的 README.md 文档,可以文档先行,如许可以在写代码之前想好你这个模块的 API 要领等。

  2. 可以尝试先写 testcase(测试先行),固然不强迫,提早写 case,没法运转测试实在也挺耗时的。

  3. 注重整顿代码构造,关于 js 模块代码,平常是:
    《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

  • package.json 是 npm 模块相干的设置;

  • glupfile.js 是 glup 的设置文件,我这里主要用来紧缩代码;

  • README.md 文档申明;

  • .gitignore 疏忽 git 版本治理的文件和目次(一些可有可无的悉数不要上传 git);

  • .travis.yml travis-ci设置文件,背面会说。

三、Javascript 模块 & npm

关于一个 js 模块,都有 package.json 文件,这个是一个严格请求的 json 花样,任何不符合请求的都邑在实行 npm 敕令的时刻报错。比方 filesize.js 的该文件内容以下:

《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

这个中比较主要的就是 name/officialNamekeywordsdevDependenciesdependenciesscriptsmainversion

  1. name:npm 宣布以后的名字,平常和前述 github 项目名字保持一致,且不能和已有的 npm 模块重名;

  2. keywords:npm 模块的关键字,用于在 npmjs.com 上检索;

  3. devDependencies:开辟依靠,比方会用到 glup 紧缩殽杂,tape 举行单元测试,jshint 举行静态代码搜检;这些都是开辟过程当中须要的依靠,非开辟环境可以不必装置;

  4. dependencies:模块的依靠库,用户在运用你的这个模块的时刻,也会附带举行装置下载;filesize.js模块很简朴,并没有任何依靠。

  5. scripts:设置一些指令,比方:npm run lintnpm run testnpm run build:离别是代码搜检,实行测试用例,build 紧缩库

  6. main:这个是 package.json 中异常主要的设置,标志援用这个模块的进口在那里;

  7. version:模块的版本,每次宣布的时刻,比方保证版本不一样。

除了这些设置,package.json 另有其他的更多设置,人人可以去搜刮进修一下,平常有了这些设置项,就够了,就可以举行 npm publish 来宣布模块。

然则,我们宣布之前,须要做一些延续集成和单元测试,用来保证代码的正确性,稳定性。这个就是运用到 travis-ci 了。

四、接入 travis-ci 延续集成

延续集成是什么?简朴来讲就是尽快,尽量早的举行代码的正确性考证(也就是测试),那末我们每次在 github push代码的时刻就运转一下测试用例,这个是否是很快,很早,也就是延续集成,关于一些简朴的 js 模块,我们做一些简朴的单元测试就够够的了。

在 github 建立项目以后,可以翻开 https://travis-ci.org/,并运用 Github 受权上岸,然后本身的 Account 菜单中勾上须要接入 travis-ci 的项目,以下图所示:

《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

假如看不到新建立的项目,可以右上角革新一下。开启以后,travis-ci 会 hook 住你 git push 敕令,然后依据你项目中的 .travis.yml 设置文件来实行 npm test(npm run test 的简写)举行测试,并捕捉检测效果来推断 测试用例 实行胜利与否。比方 filesize.js的 .travis.yml 设置以下所示:

《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

示意实行在 nodejs 环境,两个差别的大版本离别实行以下,平常挑选 4.x 版本即可。那末每次 push 代码以后,都邑举行自动触发 ci 使命,以下图所示:

《怎样开辟并宣布一个可用的 JavaScript 模块 ?》

然后你就可以把这个小绿色图表放到你的 README.md 文件中了。

五、宣布 publish

项目建立了,package.json 设置好了,代码写完了,文档完美了,ci 实行没有错误了,那末就可以宣布出去了。怎样宣布,异常简朴,假如你没有 https://www.npmjs.com/ 的账号,注册一个就好了,和平常的网站注册并没有什么区别。

有了账号以后,在项目代码根目次,实行:

npm publish

控制台会请求你输入 npmjs 网站的邮箱和暗码,输入即可,然后等着涌现 宣布胜利即可,平常涌现:filesize.js@1.0.1 如许花样的字符串即可,然后去 npmjs 网站刷一下碰运气。

六、其他

假如你做了一个很好用的有创意的模块,可以给你的模块做一个简朴炫酷的主页来显现用法和 API 接口吧。本文中作为示例的项目 filesize.js 是一个超等大轮子,就是为了写这篇文章而做了,固然也可以用户开辟天生环境。

末了安利一下,我的 Github 主页:https://github.com/hustcc,ID是 hustcc,由于我是一个huster,恰好之前注册了hust.cc域名,所以有了这个 github id 。

有哪些轮子:

  • 莆田系浏览器插件: Chrome浏览器插件——翻开莆田系病院网站,发出正告提示、显现病院信息(莆田系哪一波潮的时刻做的,用户量还挺多的)。

  • timeago.js: timeago.js is a tiny(~1.7kb) library used to format date with *** time ago statement. eg: ‘3 hours ago’. No dependency & localization & tiny.

  • echarts-for-react: baidu Echarts(v3.0) components for React wrapper. 一个简朴的echarts(v3.0)的react封装。

我是一个背景开辟者,最近在入门前段开辟,深度Github、轮子爱好者。

    原文作者:aTool_vip
    原文地址: https://segmentfault.com/a/1190000006987814
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞