【发布时间】:2020-11-22 04:28:08
【问题描述】:
我知道这听起来像是一个奇怪的问题,让我试着用例子进一步解释一下:
首先,我试图在一个简单的库中向 JSDoc 添加一些功能。我们称之为 jsdoc-extra。
当一个项目包含我的库时,它也应该安装 jsdoc。我也将 jsdoc 列为对我自己的库的依赖。
jsdoc-extra > package.json
{
[...]
"dependencies": {
[...]
"jsdoc": "^3.6.6",
[...]
}
}
让我们假设一个“示例”项目正在尝试使用我的库(这是我现在实际运行的,从文件安装的)
{
[...]
"dependencies": {
"jsdoc": "^3.6.6",
"jsdoc-cov": "file:../jsdoc-cov",
"jsdoc-ts-utils": "^1.1.2"
}
}
从我的jsdoc-extra 代码中,我可以搜索并找到安装在“客户端”应用程序(示例)上的sample/node_modules/jsdoc/jsdoc.js,或者在第一个不可用时使用我自己的jsdoc-extra/node_modules/jsdoc/jsdoc.js。然后我可以用spawn 执行它
到目前为止一切顺利。然而:
“客户端”(本例中为示例项目)可能在其 jsdoc 设置中使用了一些插件,就像您在之前的代码 sn-p 中看到的那样,我安装了 ts-utils 作为示例。
所以当我在示例项目中时,尝试运行:
node_modules/jsdoc/jsdoc-extra.js -c jsdoc.json
(jsdoc.json 是我刚刚传递给它的标准 jsdoc 配置文件)
我收到这种错误:
(node:3961) UnhandledPromiseRejectionWarning: Error: ERROR: Unable to find the plugin "jsdoc-ts-utils"
似乎我的应用程序(jsdoc-extra)无法使用安装在客户端(示例)项目上的jsdoc-ts-utils,即使我运行示例自己安装的 jsdoc。
我希望能够像这样执行它,以便“客户端”项目可以执行 jsdoc-extra 而无需额外的 jsdoc 配置,它将使用它已经用于常规 jsdoc 操作的任何内容。
我开始认为我最好的选择是实际编写一个 jsdoc 插件...
我知道这很多,而且可能令人困惑,如果您认为有必要,我很乐意提供更多信息。谢谢!
【问题讨论】:
标签: javascript node.js jsdoc