javascript - 我可以从我自己的项目运行安装在“客户端”项目上的包吗?
问题描述
我知道这听起来像是一个奇怪的问题,让我尝试通过示例进一步解释它:
首先,我试图在一个简单的库中向 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 设置中使用了一些插件,就像您在前面的代码片段中看到的那样,我安装了 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 插件......
我知道这很多,并且可能令人困惑,如果您认为有必要,我很乐意提供更多信息。谢谢!
解决方案
我决定关闭它,而只写一个 jsdoc 插件。这是入侵它生成的数据以执行我想要的操作的更简单方法。我的额外功能将与文档生成相关联,这并不理想,但我会处理它......
推荐阅读
- react-native - 如何自动聚焦到键盘 React Native?
- jestjs - 如何模拟调用 fetch() 并返回响应 obj 的函数?
- python - 将变量与json中的字符串进行比较
- android - PopUpWindow 忽略全屏和 CutoutMode
- ruby-on-rails - 在 Rails 6 中使用 config/credentials 的正确方法是什么?以及如何阻止我的应用程序使用 /tmp/development_secret?
- javascript - 预填充 PostgreSQL 数据库
- flutter - 如何在 Flutter 的屏幕顶部制作 bottomNavigationBar?
- dataframe - 如何在pyspark中将字符串日期转换为时间戳?
- json - 如何在 Julia 中将多个 JSON 文件加载到单个 DataFrame 中?
- python - 为什么队列大小保持为零?