【问题标题】:can I run a package that is installed on the "client" project from my own project?我可以从我自己的项目运行安装在“客户端”项目上的包吗?
【发布时间】: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


    【解决方案1】:

    我决定关闭它,而只写一个 jsdoc 插件。这是入侵它生成的数据以做我想做的事情的更简单方法。我的额外功能将与文档生成相关联,这并不理想,但我会处理它...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2016-03-16
      • 2010-10-10
      • 2014-05-10
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多