2017-03-12 5 views
1

Externals 섹션을 jsDoc 출력에서 ​​올바르게 제외 할 수 있습니까?jsDoc 출력에서 ​​외부를 제외합니다.

내 프로젝트에는 내비게이션 패널에 전혀 표시하고 싶지 않은 많은 외장이 있습니다. 모든 공간을 차지하므로 쓸모가 없습니다.

파일 node_modules\jsdoc\lib\util\templateHelper.js의 코드를 변경하여 수동으로 해킹 할 수 있었지만 개발자 팀에게는 재사용이 가능하지 않습니다.

해킹 빈 배열 최우선 members.externals에 있었다 : jsDoc를 사용의 년 후에,

/* 
    members.externals = members.externals.map(function(doclet) { 
     doclet.name = doclet.name.replace(/(^"|"$)/g, ''); 
     return doclet; 
    }); 
*/ 
    members.externals = []; 

답변

1

불행하게도, 내가 할 수있는 모든 파일에 종속성의 모든 업데이트 후 그것을 다시 해킹을 계속하는 것입니다 node_modules\jsdoc\lib\util\templateHelper.js.

// HACK: set Externals to an empty list: 
members.externals = []; /*members.externals.map(function(doclet) { 
    doclet.name = doclet.name.replace(/(^"|"$)/g, ''); 

    return doclet; 
});*/ 
+0

이 해킹도 사용 중입니다. 확실히 만족스럽지 않습니다. 자신을 정의하지 않은 외부 모듈을 어떻게 처리합니까? 나는 들어가서 모듈을 @external로 해킹해야했는데, 이것은 덜 만족 스럽습니다. –

0

나는이 훨씬 더 우아한 모르겠지만,이게 내가하고 결국 무엇을 :

다행히, 심지어 현재 버전 3.5.5로 해킹은 여전히 ​​동일하게 작동합니다. jsdoc 설치를 해킹 할 필요없이 모든 프로젝트에서 작동합니다.

내 문제 : 가져온 node_modules에서 파생 된 클래스가 있고 상속 된 정보가 내 설명서에 포함되기를 원했지만 기본 클래스가 사이드 바 탐색을 막히게하고 싶지 않았습니다.

exports.handlers = { 
    processingComplete: function (e) 
    { 
     for (let i = 0; i < e.doclets.length; i++) 
     { 
      const doclet = e.doclets[i] 
      if (!doclet.undocumented && doclet.meta && doclet.meta.path.indexOf('node_modules') !== -1) 
      { 
       // hack the name so I can find it in the .tmpl file 
       // I tried to add a new flag to the doclet, but it didn't pass through 
       doclet.longname += '~' 
      } 
     } 
    } 
}; 
다음

나는 navigation.tmpl에 체크 추가 :

<ul class="list"> 
<?js 
this.nav.forEach(function (item) { 
?> 
    <?js if (item.longname[item.longname.length - 1] !== '~') { ?> 
    <li class="item" data-name="<?js= item.longname ?>"> 
    ... 
    <? } ?> 

을 그리고

첫째, 내 jsdoc 템플릿에 플러그인을 추가 (나는 그것을 건너-node_modules라고도 함) poof, 더 이상 내 사이드 ​​바에 node_module 가져 오기가 없습니다. (이 클래스를 클릭 할 때 사이드 바를 표시하지 않는 단점이 있습니다. 해킹을 해킹하면 문제를 해결할 수 있지만 너무 중요하지는 않습니다.)

쉽습니다. 이것을 변경하여 외부 기호를 확인하십시오. 플러그인에서 console.log (e)를 사용하여 도크 렛이 제공하는 모든 정보를 얻고 상황에 맞는 것을 찾으십시오.