如何require.resolve包目录?

时间:2017-06-01 18:56:19

标签: node.js

require.resolve('babel-runtime')会返回错误,因为其package.json不包含" main"领域。但是,我对包的main / entry文件不感兴趣,我想得到包本身的目录。

通常位于${__dirname}/node_modules/babel-runtime,但如果node_modules树被展平,则可能不是。{p>}那么如何解析包的目录,就像Node在写require('babel-runtime/core-js/object/create')之类的内容时知道在哪里看一样?

1 个答案:

答案 0 :(得分:8)

我想到,如果Node可以解析文件路径,即使是" main"不存在,那么我可以这样滥用:

 path.dirname(require.resolve('babel-runtime/package.json'))

即,解析您知道存在的文件,然后从那里向后工作。这是一种黑客行为,但它是我发现的唯一解决方案。