React Native 中的 require() 解析
require() resolution in React Native
我正在尝试找出为什么 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 吗?
Require 不是 React 语句 - 它是 Node.js 语句,请改用 import。
两个项目的路径是否相同?如果在第一个项目中 require() 工作,那么它应该在第二个项目中工作,一个不工作的原因是你的路径在第二个项目中不正确。因此再次检查。
我正在尝试找出为什么 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 吗?
Require 不是 React 语句 - 它是 Node.js 语句,请改用 import。
两个项目的路径是否相同?如果在第一个项目中 require() 工作,那么它应该在第二个项目中工作,一个不工作的原因是你的路径在第二个项目中不正确。因此再次检查。