获取 __dirname 指向文件夹路径而不是符号链接文件夹的真实路径

tak*_*ola 8 javascript symlink node.js npm npm-link

使用 npm 链接时如何让 __dirname 指向文件夹的保留路径而不是符号链接文件的真实路径。

设想

文件夹设置

project
  |
  ---- moduleA
  |       |
  |       ---- moduleA.js
  |
  ---- app
       |
       --- node_modules
Run Code Online (Sandbox Code Playgroud)

project
  |
  ---- moduleA
  |       |
  |       ---- moduleA.js
  |
  ---- app
       |
       --- node_modules
Run Code Online (Sandbox Code Playgroud)

内部 moduleA.js

__dirname -> /project/moduleA
Run Code Online (Sandbox Code Playgroud)

然而,预期的行为是

__dirname -> /project/app/node_modules/moduleA
Run Code Online (Sandbox Code Playgroud)

由于 npm link 创建一个符号链接,将链接的模块插入到 node_modules 文件夹中,从而模拟直接安装模块的体验。

如何让 __dirname 指向保留的路径而不是模块所在的真实路径?

注意:--preserve-symlinks 命令行选项不会影响 __dirname 的值