JS 工具库文档化

JSDoc 是一个自动化生成 JavaScript 文档工具,它是利用对 JavaScript 函数的特定注释来编译成 HTML 文件的一个文档工具。

安装

全局安装或者局部安装:

1npm install jsdoc -g 2 3npm install jsdoc -save-dev 4复制代码

基本使用

只要在 JavaScript  中写好注释,利用命令即可:

1jsdoc a.js b.js ... 2复制代码

当然我们也可以在项目下定义 jsdoc.json 配置文件,通过 -c 参数来指定:

1jsdoc -c jsdoc.json 2复制代码

可以在 package.json 中的 scripts 添加命令:

1{ 2 "scripts": { 3 "docs": "jsdoc -c jsdoc.json" 4 } 5} 6复制代码

这样我们就可以通过在项目下执行 npm run docs 命令来生成文档了。

配置文件

常用的配置文件

1{ 2 "source": { 3 "include": [ "src/" ], 4 "exclude": [ "src/libs" ] 5 }, 6 "opts": { 7 "template": "templates/default", 8 "encoding": "utf8", 9 "destination": "./docs/", 10 "recurse": true, 11 "verbose": false 12 } 13} 14复制代码
  • source 表示传递给 JSDOC 的文件
  • source.include 表示 JSDOC 需要扫描哪些文件
  • source.exclude 表示 JSDOC 需要排除哪些文件
  • opts 表示传递给 JSDOC 的选项
  • opts.template 生成文档的模板,默认是 templates/default
  • opts.encoding 读取文件的编码,默认是 utf8
  • opts.destination 生成文档的路径,默认是 ./out/
  • opts.recurse 运行时是否递归子目录
  • opts.verbose 运行时是否输出详细信息,默认是 false

注释

1/** 2* @author Mondo 3* @description list 数据结构 转换成 树结构 4* @param {Array} data 需要转换的数据 5* @param {String} id 节点 id 6* @param {String} pid 父级节点 id 7* @param {String} child 子树为节点对象的某个属性值 8* @param {Object} labels 需要新增的字段名集合 { label: 'category_name' } 9* @return {Array} 10* 11* @example 12* formatListToTree({data: [{id:1}, {id: 2}, {id: 3, pid: 1}]}) 13* => 14* [ { id: 1, children: [ {id: 3, pid: 1} ] }, { id: 2 } ] 15*/ 16 17function formatListToTree({ 18 data = [], 19 id = "id", 20 pid = "pid", 21 child = "children", 22 labels = null 23}) { 24... 25} 26复制代码

常见的 JavaScript 块级注释,必须以 /** 开头,不然会被忽略掉。

下面介绍一些常见的级块标签:

  • @author 该类/方法的作者。
  • @class 表示这是一个类。
  • @function/@method 表示这是一个函数/方法(这是同义词)。
  • @private 表示该类/方法是私有的,JSDOC 不会为其生成文档。
  • @name 该类/方法的名字。
  • @description 该类/方法的描述。
  • @param 该类/方法的参数,可重复定义。
  • @return 该类/方法的返回类型。
  • @link 创建超链接,生成文档时可以为其链接到其他部分。
  • @example 创建例子。

主题

JSDoc 默认的主题可能不近如人意,不过大型交友网站上给我们提供了还不错的主题,只要我们对应 install 下来配置就行。推荐两款还不错的主题:

配置主题:

  • 下载

    npm install docdash --save-dev 复制代码

  • jsdoc.json 文件中配置

    { "opts": { "template": "node_modules/docdash" } } 复制代码

模版

对主题还是不满意,我们也可以在 jsdoc.json  中指定自己的模版

1{ 2 "templates": { 3 "cleverLinks": true, 4 "default": { 5 "layoutFile": "plugins/layout.tmpl" 6 } 7 } 8} 9复制代码

模版文件其实就是主题中自定义模版

部署

这一部分可参考 travis-cli 持续集成。

js-utils 是作者君利用 JSDoc  搭建的一个日常函数工具库,可以参考里面的配置。

参考:
jsdoc


欢迎关注公众号,大家一起共同交流和进步。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

JS 工具库文档化 - HelloWorld