我想编写一些代码,只有在全局安装软件包时才会在npm postinstall上执行。是否有内置的解决方案来检测活动包是否全局安装?
如果没有那么什么是适用于任何操作系统的最佳解决方法?我目前唯一的想法是检查包的当前工作目录,并检查它是否在全局npm路径下。
答案 0 :(得分:4)
我在repo找到了我正在寻找的解决方案。
解决方案是在postinstall脚本中检查!!process.env.npm_config_global
。只有在全局安装软件包时,该环境变量才会生效。
答案 1 :(得分:0)
您可以使用require.resolve()
为您提供路径。您可以比较给定的路径,看看它是在本地安装还是全局安装。您可以使用npm root -g
来获取全局模块的路径。