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

时间:2016-11-08 09:28:53

标签: node.js npm npm-scripts

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

此脚本有自己的npm依赖项,并且由于脚本流依赖于将其中一个依赖项复制到其他位置,因此需要知道该依赖项的安装位置。

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

1 个答案:

答案 0 :(得分:3)

请参阅a more elaborated answer here。这个答案是为了参考。

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

  

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

例如:

$ npm ls my-dep -p
/Users/my-user/dev/host-project/node_modules/my-dep

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

$ npm ls my-dep -ps

在你的npm脚本中,可以使用child process集成此命令,在这种情况下,首选运行命令而不使用--silent标志以允许捕获任何错误

如果捕获了错误,则可以判断其是否致命(例如上述关于无关包的错误应该被忽略)。