如何在节点7.2.1中获取当前模块的目录 - 不推荐使用resolve?

时间:2016-12-15 07:53:14

标签: node.js

我正在尝试解析所需模块的路径:

var directory = require.resolve('ocs.auth')

但Webstorm告诉我Deprecated symbol, consult docs for a better alternative - 但我已经检查了Node文档,但无法找到任何对其弃用的引用。

节点版本为7.2.1。

我可以从模块中的index.js公开目录对象__dirname,但我认为解决方案应该可行。有谁知道为什么resolve被弃用了?什么取而代之?

1 个答案:

答案 0 :(得分:0)

官方文档没有提及弃用。所有弃用的方法/对象都标记为已弃用,并且还包括基于git历史记录发生弃用时的版本标记。 (参见此示例https://github.com/nodejs/node/blob/master/doc/api/crypto.md#ecdhsetpublickeypublic_key-encoding)。在过去,符号链接存在一些问题,但这些问题已经解决了。

如果您使用--trace-deprecation运行脚本,您甚至可以继续打开一些弃用警告,该脚本将警告您的代码正在使用的所有弃用的方法/对象等(require.resolve赢了&#39 ; t触发弃用警告)。

我的WebStorm版本(带有最新补丁的2016.3)并未发出警告;也许启用了一些额外的代码分析器并启用了特殊设置?