获取没有入口点的 NPM 包路径
Get a path to NPM package without entry point
一个非常规包包含二进制和嵌套模块但没有入口点(没有索引脚本也没有 main
),react-scripts
是一个例子。
require.resolve('react-scripts/bin/react-scripts')
有效,因为 bin/react-scripts.js
模块存在,但 require.resolve('react-scripts')
导致错误,因为包没有入口点。
最好避免依赖像 ./node_modules/react-scripts
这样的预期位置,因为它取决于项目结构。
获取 react-scripts
模块文件夹的完整路径的好方法是什么?
可以从最近的预期存在的文件中提取包路径,即package.json
:
path.dirname(require.resolve('react-scripts/package.json'))
仍然希望使用其他方法来解析包的路径。
一个非常规包包含二进制和嵌套模块但没有入口点(没有索引脚本也没有 main
),react-scripts
是一个例子。
require.resolve('react-scripts/bin/react-scripts')
有效,因为 bin/react-scripts.js
模块存在,但 require.resolve('react-scripts')
导致错误,因为包没有入口点。
最好避免依赖像 ./node_modules/react-scripts
这样的预期位置,因为它取决于项目结构。
获取 react-scripts
模块文件夹的完整路径的好方法是什么?
可以从最近的预期存在的文件中提取包路径,即package.json
:
path.dirname(require.resolve('react-scripts/package.json'))
仍然希望使用其他方法来解析包的路径。