Node.js 如何从全局安装的包中找到本地 node_modules 文件夹

Node.js how to find local node_modules folder from a globally installed package

我正在编写我自己的 CLI 节点模块 'npak',该模块已全局安装。

我需要找到执行(全局)cli 命令的项目的本地 'node_modules' 文件夹的绝对路径。

假设项目是这样的:

/home
  /projects
    /test-project/
      /package.json
      /node-modules
      /folder-one
         /folder-two
            /folder-three/ npak find-modules 
                            ^-- this should return absolute path of node-modules folder

应该 return : /home/projects/test-project/node-modules 即使全局安装了 npak

如何获取本地 'node-modules' 文件夹的绝对路径,而不管 cwd 是来自全局安装包的什么?

__dirname给出执行脚本的路径。

有一些有用的模块,例如 find-node-modules,可以帮助您完成这样的任务。