Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取_dirname以指向文件夹路径,而不是sym链接文件夹的实际路径_Javascript_Node.js_Npm_Symlink_Npm Link - Fatal编程技术网

Javascript 获取_dirname以指向文件夹路径,而不是sym链接文件夹的实际路径

Javascript 获取_dirname以指向文件夹路径,而不是sym链接文件夹的实际路径,javascript,node.js,npm,symlink,npm-link,Javascript,Node.js,Npm,Symlink,Npm Link,使用npm链接时,如何使_dirname指向文件夹的保留路径,而不是符号链接文件的实际路径 情景 文件夹设置 project | ---- moduleA | | | ---- moduleA.js | ---- app | --- node_modules cd项目/模块a npm链路 cd项目/应用程序 npm链接模块A\uuu dirname包含模块的目录名,即/project/moduleA。该模块未安装在/

使用npm链接时,如何使_dirname指向文件夹的保留路径,而不是符号链接文件的实际路径

情景

文件夹设置

project
  |
  ---- moduleA
  |       |
  |       ---- moduleA.js
  |
  ---- app
       |
       --- node_modules
cd项目/模块a
npm链路
cd项目/应用程序

npm链接模块A
\uuu dirname
包含模块的目录名,即
/project/moduleA
。该模块未安装在
/project/app/node_modules
中,它只是链接在那里。为什么需要该路径?该模块创建并读取项目中其他目录(例如配置和日志)中的文件夹/文件。我使用npm链接来简化开发,避免每次更改都要发布和更新模块。但是,如果相对路径指向链接文件的实际路径,则很难使用此方法。如果没有发布模块,也可以从其目录安装它(
npm install/path/to/module
)所以我可以只做npm安装/project/moduleA,然后对moduleA的所有更改都会立即反映在项目中,即使没有npm链接?虽然很酷,但仍然不能解决相对路径问题,但是你不能两全其美:要么是
npm链接
和处理
\u dirname
不正确的问题,要么在模块更改时运行
npm安装/path/to/module
。或者为模块提供某种配置选项,调用者可以在其中设置/覆盖路径(无论如何,这可能是一件好事,模块可能不应该首先在项目目录中创建新的dir/文件)。或者假设当前工作目录是配置文件所在的位置,并且应该创建目录。