如何通过 npm CLI/API 获取已安装的 npm 包的路径?

Eli*_*lka 0 node.js npm npm-scripts

我正在编写一个 npm 脚本,它被打包为一个 npm 包,将主要的可执行文件暴露node_modules/.bin给它的托管项目。

此脚本有自己的 npm 依赖项,并且由于脚本流依赖于将这些依赖项之一复制到不同位置,因此它需要知道该依赖项安装在哪里。

我如何找到(通过 API 或 npm CLI)在主机内部安装的依赖项在node_modules哪里?

Eli*_*lka 6

在此处查看更详细的答案。保留此答案以供参考。


您可以npm ls--parseable标志一起使用,它将:

显示可解析的输出而不是树视图。

例如:

$ npm ls my-dep -p
/Users/my-user/dev/host-project/node_modules/my-dep
Run Code Online (Sandbox Code Playgroud)

你应该知道这个命令也可以向标准输出输出一些不相关的错误(例如关于无关的安装)——要解决这个问题,激活--silent标志(见loglevel文档):

$ npm ls my-dep -ps
Run Code Online (Sandbox Code Playgroud)

在您的 npm 脚本中,可以使用子进程集成此命令,在这种情况下,最好运行不带--silent标志的命令以允许捕获任何错误。

如果捕获到错误,您可以决定它是否致命(例如,应忽略上述有关无关包的错误)。