jsdoc3詳細(xì)入門(圖文)

jsdoc3是一個(gè)比較方便的js代碼生成文檔工具。通過在代碼中加入規(guī)范化的注釋可以快速生成合適的接口文檔,許多IDE工具也逐漸支持jsdoc規(guī)范,擁有jsdoc插件,如Hbuilder,VSCode,Submile Text等丑婿。

在使用jsdoc3之前,還需要安裝Node.js没卸。Node.js 安裝配置|菜鳥教程羹奉。

一、jsdoc3的下載安裝

1)jsdoc3開源地址:

github:https://github.com/jsdoc/jsdoc

碼云:https://gitee.com/mirrors/JsDoc3

2)安裝

運(yùn)行界面輸入cmd打開控制臺(tái)办悟,使用npm安裝(全局安裝)

npm install -g jsdoc

運(yùn)行界面輸入cmd打開控制臺(tái)尘奏,輸入 jsdoc -v,出現(xiàn)下圖表示成功安裝

二病蛉、jsdoc3的基本使用

1)jsdoc3說(shuō)明文檔

 [](https://jsdoc.app)

2)使用命令打包js

以一個(gè)示例文件jsdoc-test.js為例炫加。這個(gè)文件我放在了E:\mapAPI\docstrap

jsdoc-test.js

1./**  
2. * @file  
3. * 這是首頁(yè)內(nèi)容展示。  
4. * 支持html樣式內(nèi)容  
5. * <h3>Grades</h3>  
6. */   
7./**  
8. * @class Grades      
9. * 班級(jí)類  
10. *  
11. */   
12.function Grades() {   
13. /**  
14. * @property {Array} students  
15. * 班級(jí)學(xué)生  
16. */   
17. this.students = [{"name":"學(xué)生1"},{"name":"學(xué)生2"}]   
18. /**  
19. * @property {String} name  
20. * 班級(jí)名稱  
21. */   
22. this.name = "通信1班"   
23. /**  
24. * @property {String} headMaster  
25. * 班主任  
26. */   
27. this.headMaster = "班主任1"   
28.}   
29./**  
30. * 獲取班級(jí)學(xué)生  
31. * @return {Array} 班級(jí)學(xué)生數(shù)組.{@link Grades#students}  
32. */   
33.Grades.prototype.getStudents = function() {   
34. return this.students;   
35.}   
36./**  
37. * 設(shè)置新班主任  
38. * @param {String} headMaster 新班主任名稱  
39. */   
40.Grades.prototype.setHeadMaster = function(headMaster) {   
41. this.headMaster = headMaster;   
42.} ?  

在jsdoc-test.js目錄下打開控制臺(tái)铺然,輸入:

jsdoc jsdoc-test.js --debug

選項(xiàng): --debug 生成時(shí)控制臺(tái)打印調(diào)試信息俗孝。

回車后如下圖所示,打印了生成的相關(guān)信息


生成后out文件夾中的內(nèi)容如下圖:

點(diǎn)擊html文件打開魄健。每個(gè)html對(duì)應(yīng)一個(gè)頁(yè)面赋铝。生成的文檔頁(yè)面如下圖

三、jsdoc3模板配置與使用

jsdoc3有一些風(fēng)格不錯(cuò)沽瘦,功能豐富的模板革骨。這些模板在上面的jsdoc3的github里可以找到。這里以docstrap模板為例析恋,記錄使用其他模板插件生成文檔頁(yè)面的過程良哲。

docstrap github:https://github.com/docstrap/docstrap

1)安裝docstrap

使用npm安裝docstrap。在E:\mapAPI\docstrap 打開控制臺(tái)助隧,輸入 npm i ink-docstrap 進(jìn)行安裝

2)創(chuàng)建模板配置文件

新建一個(gè)jsdoc.conf.json的空文件筑凫,然后填寫配置的內(nèi)容。docstrap的配置方式在遵循jsdoc3配置方式的基礎(chǔ)上,新增加了一些選項(xiàng)巍实。具體的選項(xiàng)說(shuō)明可以在github中查看滓技。以下是我在用的配置模板

jsdoc.conf.json

{
"tags":{
"allowUnknownTags":true
},
"opts":{
"template":"./node_modules/ink-docstrap/template",
"encoding":"utf8",
"destination":"./test_doc/",
"recurse":true
},
"plugins":["plugins/markdown"],
"recurseDepth":10,
"source":{
"includePattern":".+\\.js(doc|x)?$",
"excludePattern":"(^|\\/|\\\\)_"
},
"templates":{
"logoFile":"",
"cleverLinks":false,
"monospaceLinks":false,
"dateFormat":"dddMMMDoYYYY",
"outputSourceFiles":true,
"outputSourcePath":true,
"systemName":"",
"footer":"",
"copyright":"",
"navType":"vertical",
"theme":"cosmo",
"linenums":true,
"collapseSymbols":false,
"inverseNav":true,
"protocol":"html://",
"methodHeadingReturns":false,
"search":true
},
"markdown":{
"parser":"gfm",
"hardwrap":true
}
}

3)生成文檔

E:\mapAPI\docstrap 打開控制臺(tái),輸入 jsdoc jsdoc-test.js -c jsdoc.conf.json --debug

此時(shí)當(dāng)前目錄下會(huì)出現(xiàn)一個(gè)test_doc的文件夾棚潦。

里面便是生成好的文檔文件令漂。


image.png

效果圖:



四、jsdoc3的gulp插件使用

在上面的安裝好docstrap后丸边,繼續(xù)執(zhí)行安裝gulp-jsdoc3

1)安裝gulp

在E:\mapAPI\docstrap 打開控制臺(tái)洗显,輸入 npm i gulp@3.9.0

2)初始化package.json

輸入npm i init生成一個(gè)package.json文件

3)安裝gulp-jsdoc3等插件包

輸入npm i gulp-jsdoc3 run-sequence 安裝

4)新建gulpfile文件

新建一個(gè)gulpfile.js,內(nèi)容如下

1.let gulp = require('gulp');  
2.let jsdoc = require('gulp-jsdoc3');  
3.  
4.gulp.task('doc', function (cb) {  
5.    var config = require('./jsdoc.conf');  
6.    gulp.src(['README.md', './js/**/*.js'], {read: false})  
7.        .pipe(jsdoc(config, cb));  
8.});  
9.  
10.gulp.task('default', function (cb) {  
11.    let runSequence = require('run-sequence');  
12.    runSequence('doc', cb);  
13.      
14.    gulp.watch(['./js/**/*.js'],["doc"]);  
15.});   

5)執(zhí)行g(shù)ulp

輸入 gulp ,成功運(yùn)行如下圖所示

當(dāng)js文件發(fā)生變化時(shí)原环,會(huì)自動(dòng)監(jiān)聽并重新打包新的文檔文件,在開發(fā)時(shí)可以邊寫代碼邊生成開發(fā)文檔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末处窥,一起剝皮案震驚了整個(gè)濱河市嘱吗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滔驾,老刑警劉巖谒麦,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哆致,居然都是意外死亡绕德,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門摊阀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耻蛇,“玉大人,你說(shuō)我怎么就攤上這事胞此〕伎В” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵漱牵,是天一觀的道長(zhǎng)夺蛇。 經(jīng)常有香客問我,道長(zhǎng)酣胀,這世上最難降的妖魔是什么刁赦? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮闻镶,結(jié)果婚禮上甚脉,老公的妹妹穿的比我還像新娘。我一直安慰自己儒溉,他們只是感情好宦焦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般波闹。 火紅的嫁衣襯著肌膚如雪酝豪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天精堕,我揣著相機(jī)與錄音孵淘,去河邊找鬼。 笑死歹篓,一個(gè)胖子當(dāng)著我的面吹牛瘫证,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庄撮,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼背捌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了洞斯?” 一聲冷哼從身側(cè)響起毡庆,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烙如,沒想到半個(gè)月后么抗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亚铁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蝇刀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徘溢。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吞琐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甸昏,到底是詐尸還是另有隱情顽分,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布施蜜,位于F島的核電站卒蘸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翻默。R本人自食惡果不足惜缸沃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望修械。 院中可真熱鬧趾牧,春花似錦、人聲如沸肯污。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至哄芜,卻和暖如春貌亭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背认臊。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工圃庭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人失晴。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓剧腻,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涂屁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子书在,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355