我们想使用AsyncAPI来记录我们的 RabbitMQ 消息传递。因此,我们安装了asyncapi/generator作为 npm 依赖项。
如果您看一下,package.json
您会发现它引用npmi作为依赖项,而依赖项又引用了global-npm。如果我们想运行它,需要一个全局安装的节点和 npm。
现在,如果我们在$ ag ./docs/asyncapi.yaml @asyncapi/html-template --output ./docs/asyncapi/ --force-write
没有全局安装 npm 的机器上运行生成器 (),则会出现以下错误消息:
/path/to/project/node_modules/global-npm/index.js:13
throw err
^
Error: Cannot find module 'npm'
at throwNotFoundError (/path/to/project/node_modules/global-npm/index.js:11:13)
at /path/to/project/node_modules/global-npm/index.js:39:5
...
作为一种解决方法,我们将 npm 本身声明为依赖项:
"dependencies": {
"@asyncapi/generator": "^1.1.4",
"@asyncapi/html-template": "^0.15.4",
"@asyncapi/markdown-template": "^0.11.1",
"npm": "^6.14.9",
...
我从来没有见过这样的事情。这是可以接受的还是我们需要在我们的机器上单独安装我们的 npm?