我正在编写一个 npm 脚本,它被打包为一个 npm 包,将主可执行文件暴露node_modules/.bin
给它的托管项目。
该脚本有自己的 npm 依赖项,并且由于脚本流依赖于将这些依赖项之一复制到不同的位置,因此它需要知道该依赖项安装在哪里。
我怎样才能找到(通过 API 或 npm CLI)该依赖项安装在主机的node_modules
哪里?
我正在编写一个 npm 脚本,它被打包为一个 npm 包,将主可执行文件暴露node_modules/.bin
给它的托管项目。
该脚本有自己的 npm 依赖项,并且由于脚本流依赖于将这些依赖项之一复制到不同的位置,因此它需要知道该依赖项安装在哪里。
我怎样才能找到(通过 API 或 npm CLI)该依赖项安装在主机的node_modules
哪里?
在此处查看更详细的答案。这个答案留作参考。
您可以npm ls
与--parseable
标志一起使用,这将:
显示可解析的输出而不是树视图。
例如:
$ npm ls my-dep -p
/Users/my-user/dev/host-project/node_modules/my-dep
你应该知道这个命令也可以输出一些不相关的错误到标准输出(例如关于无关的安装)——为了解决这个问题,激活--silent
标志(见loglevel
文档):
$ npm ls my-dep -ps
在您的 npm 脚本中,可以使用子进程集成此命令,在这种情况下,最好在不带--silent
标志的情况下运行命令以允许捕获任何错误。
如果一个错误被捕获,你可以决定它是否是致命的(例如前面提到的关于无关包的错误应该被忽略)。