我正在开发一个 npm 包,它用作 CLI 来生成代码。通常将此项目用作 devDependency
是有道理的。
但是生成的代码在运行时需要第三方库。有没有办法通过 package.json
管理此依赖项?我已经看到其他库在 README 中包含了定义此依赖项的注释,但不能保证最终用户会阅读此 README,因此我希望能够强制执行此操作。
我的一个想法是使用 preinstall
脚本来验证该第三方库是否已安装,否则会抛出错误并不允许用户安装。但这感觉更像是一个黑客而不是解决方案。
我预计有人会说“但是当所有生成的代码都不起作用时,这不是很明显吗?”这是绝对正确的,但理想情况下,这个过程应该在运行之前失败。
我不确定这里的细节是否真的很重要,但我的包根据 OpenAPI 规范为 API 项目生成样板 TypeScript 代码,并且在运行时依赖于 Express.js。
答案 0 :(得分:1)
这听起来像是对等依赖。您可以使用 the peerDependencies
key 在 package.json
中指定对等依赖项。
在 npm
6 中,缺少对等依赖项将导致警告。
在 npm
7 中,安装了缺少的对等依赖项。