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')
之类的内容时知道在哪里看一样?
答案 0 :(得分:8)
我想到,如果Node可以解析文件路径,即使是" main"不存在,那么我可以这样滥用:
path.dirname(require.resolve('babel-runtime/package.json'))
即,解析您知道存在的文件,然后从那里向后工作。这是一种黑客行为,但它是我发现的唯一解决方案。