【问题标题】:dgeni document generation set is not defineddgeni 文档生成集未定义
【发布时间】:2016-07-27 19:59:53
【问题描述】:

我的问题是dgeni doc生成崩溃了,我读到错误集未定义,所以我认为错误与此有关。

我已经通过 npm install 安装了 dgeni(目前在 Windows 7 下,但之前也尝试过 Ubuntu 14.04)。 我的意思是:

  • dgeni ~0.4.2
  • dgeni-packages ~0.14.0
  • 规范路径 0.0.2

项目的public文件夹里面有很多.js文件,不是直接在/public,而是一些子文件夹。

我在 docs 文件夹中设置了一个这样的 dgeni 包,并下载了位于 /docs/templates 中的模板:

dgeni-docs.js

var path = require('canonical-path');
var Package = require('dgeni').Package;

module.exports = new Package('dgeniDocsPackage', [
  require('dgeni-packages/dgeni'),
  require('dgeni-packages/jsdoc'),
  require('dgeni-packages/nunjucks')
])

.config(function(log, readFilesProcessor, writeFilesProcessor, templateFinder, debugDumpProcessor) {

  log.level = 'info';

  readFilesProcessor.basePath = path.resolve(__dirname, '..');
  readFilesProcessor.sourceFiles = [{ include: 'public/**/*.js', basePath: 'public' }];
  writeFilesProcessor.outputFolder = 'docs/build';

  templateFinder.templateFolders.unshift('docs/templates');
  templateFinder.templatePatterns.unshift('common.template.html');
});

common.template.html

<h1>{{ doc.codeName }} ({{ doc.outputPath }})</h1>
<p>{{ doc.description }}</p>

{%- if doc.params %}
<h2>Params</h2>
<ul>
{%- for param in doc.params %}
  <li>
    <strong>{{ param.name }}</strong> { {{ param.typeList }} } - {{ param.description }}
  </li>
{%- endfor %}
</ul>
{%- endif %}

{%- if doc.returns %}
<h2>Returns</h2>
<p>
  { {{ doc.returns.typeList }} } - {{ doc.returns.description }}
</p>
{%- endif %}

我启动它的命令是 "dgeni .\docs\dgeni-docs.js"

输出是:

W:\home\webserver\aconcept (master) (aconcept@0.3.3)
λ dgeni .\docs\dgeni-docs.js

W:\home\webserver\aconcept\node_modules\dgeni-packages\jsdoc\services\transforms\extract-access.js:8
  extractAccessTransformImpl.allowedDocTypes = new Set(['property', 'method'])
                                                   ^
ReferenceError: Set is not defined
    at extractAccessTransform (W:\home\webserver\aconcept\node_modules\dgeni-packages\jsdoc\services\transforms\extract-access.js:8:52)
    at Array.invoke [as 0] (C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\node_modules\di\lib\injector.js:75:15)
    at get (C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\node_modules\di\lib\injector.js:48:43)
    at C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\node_modules\di\lib\injector.js:71:14
    at Array.map (native)
    at invoke (C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\node_modules\di\lib\injector.js:70:31)
    at C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\lib\util\getInjectables.js:10:31
    at Array.map (native)
    at C:\Users\HSO4ABT\AppData\Roaming\npm\node_modules\dgeni\lib\util\getInjectables.js:9:22
    at module.exports.Package.processor.processor.processor.processor.processor.processor.processor.processor.processor.factory.factory.factory.factory.factory.factory.factory.factory.factory.factory.config.config.config.extractTagsProcessor.defaultTagTransforms (W:\home\webserver\aconcept\node_modules\dgeni-packages\jsdoc\index.js:42:39)

感谢阅读

【问题讨论】:

    标签: javascript node.js npm package


    【解决方案1】:

    我设法做到了,解决方案是使用 gulp 生成。根据文档,也应该可以直接在控制台中调用它。

    对于那些对完整示例感兴趣的人,这里有一个完整示例: https://github.com/petebacondarwin/dgeni-example

    【讨论】:

    • 发现自己遇到了一个非常相似的问题,使用 Gulp 运行会有所帮助,但最终我的问题是安装了较旧的 NodeJs(准确地说是 v10.35)。我不确定您需要的 Node 最低版本是多少,但是一旦我安装了最新的 Node(在发表此评论时为 v6.9.1),它肯定可以工作。
    猜你喜欢
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多