是否可以指定代码生成器的运行时依赖项?

时间:2021-03-08 23:35:34

标签: npm code-generation

我正在开发一个 npm 包,它用作 CLI 来生成代码。通常将此项目用作 devDependency 是有道理的。

但是生成的代码在运行时需要第三方库。有没有办法通过 package.json 管理此依赖项?我已经看到其他库在 README 中包含了定义此依赖项的注释,但不能保证最终用户会阅读此 README,因此我希望能够强制执行此操作。

我的一个想法是使用 preinstall 脚本来验证该第三方库是否已安装,否则会抛出错误并不允许用户安装。但这感觉更像是一个黑客而不是解决方案。

我预计有人会说“但是当所有生成的代码都不起作用时,这不是很明显吗?”这是绝对正确的,但理想情况下,这个过程应该在运行之前失败。

我不确定这里的细节是否真的很重要,但我的包根据 OpenAPI 规范为 API 项目生成样板 TypeScript 代码,并且在运行时依赖于 Express.js。

1 个答案:

答案 0 :(得分:1)

这听起来像是对等依赖。您可以使用 the peerDependencies keypackage.json 中指定对等依赖项。

npm 6 中,缺少对等依赖项将导致警告。

npm 7 中,安装了缺少的对等依赖项。

相关问题