我正在尝试找出require('foo/bar.png')
在两个RN项目中为何工作不同的原因
在一个项目中,foo是通过metro.config.js注册为root的。
extraNodeModules: {
foo: path.join(__dirname, 'src/foo'),
}
在另一个项目中,foo位于app_root / node_modules下
so foo is at app_root/node_modules/foo
所以在两个项目中,我都可以做import something from 'foo/something'
但是在require
方面,两个项目的行为有所不同。.
foo/components/hello.js
require('foo/assets/image.png')
在第一个项目中,正确找到了图像文件,
但是第二个项目抱怨找不到错误/path/to/root_project/node_modules/foo/component/node_modules/foo/assets/image.png
似乎require
假设调用require
的位置应该是项目根目录或其他名称。
我应该在哪里寻找或如何调试它?
我可以在ReactNative项目中打印module.paths吗?
答案 0 :(得分:0)
Require不是React语句-它是Node.js语句,请改用import。
答案 1 :(得分:0)
两个项目的路径是否相同?如果在第一个项目中 require()工作,那么它应该在第二个项目中工作,这是第二个项目中您的路径不正确的原因之一。因此,请再次检查。