Node.js React Native中的require()解析
我试图找出为什么Node.js React Native中的require()解析,node.js,react-native,metro-bundler,Node.js,React Native,Metro Bundler,我试图找出为什么require('foo/bar.png')在两个RN项目中的工作方式不同 在一个项目中,foo通过metro.config.js注册为root extraNodeModules: { foo: path.join(__dirname, 'src/foo'), } 在另一个项目中,foo位于app_root/node_模块下 so foo is at app_root/node_modules/foo 因此,在这两个项目中,我都可以做从'foo/somethi
require('foo/bar.png')
在两个RN项目中的工作方式不同
在一个项目中,foo通过metro.config.js注册为root
extraNodeModules: {
foo: path.join(__dirname, 'src/foo'),
}
在另一个项目中,foo位于app_root/node_模块下
so foo is at app_root/node_modules/foo
因此,在这两个项目中,我都可以做从'foo/something'导入一些东西
但是,当涉及到要求时,两个项目的表现不同
foo/components/hello.js中有一行
require('foo/assets/image.png')
在第一个项目中,正确找到图像文件
但第二个项目抱怨说它找不到错误/path/to/root\u project/node\u modules/foo/component/node\u modules/foo/assets/image.png
似乎require
假设调用require
的地方应该是项目根或其他地方
我应该在哪里查找,或者如何调试
我可以在ReactNative项目中打印module.path吗?Require不是React语句-它是Node.js语句,请改用import。两个项目的路径是否相同?如果在第一个项目中,require()起作用,那么应该是在第二个项目中起作用,第二个项目中的路径不正确是不起作用的原因之一。因此,请再次检查 我最终从node\u modules/foo
移动到src/foo