繁体   English   中英

如何检测当前的npm包是否是全局的?

[英]How to detect if the current npm package is global?

我想编写一些代码,只有在全局安装软件包时才会在npm postinstall上执行。 是否有内置的解决方案来检测活动包是否全局安装?

如果没有那么什么是适用于任何操作系统的最佳解决方案? 我目前唯一的想法是检查包的当前工作目录,并检查它是否在全局npm路径下。

我找到了我在这个回购中寻找的解决方案。

解决方案是在postinstall脚本中检查!!process.env.npm_config_global 只有在全局安装软件包时,该环境变量才会生效。

您可以使用require.resolve()为您提供路径。 您可以比较给定的路径,看它是安装在localy还是全局安装。 您可以使用npm root -g来获取全局模块的路径。

https://nodejs.org/api/globals.html#globals_require_resolve

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM