我正在编写一个npm脚本,它被打包为一个npm包,将主要可执行文件暴露给它的托管项目node_modules/.bin
。
此脚本有自己的npm依赖项,并且由于脚本流依赖于将其中一个依赖项复制到其他位置,因此需要知道该依赖项的安装位置。
我如何找到(通过API或npm CLI)在主机node_modules
内安装的依赖项?
答案 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
标志以允许捕获任何错误
如果捕获了错误,则可以判断其是否致命(例如上述关于无关包的错误应该被忽略)。