node.js - React Native 中的 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。
推荐阅读
- socket.io - Socket.IO 失败:WebSocket 握手期间出错:意外响应代码:400
- react-native - 带有 Mobx 和 React-navigation 的 React-Native Flash-Message
- javascript - 在 javascript 中读取 XML 文件中的特定值并返回同一行中的所有值
- netcdf - 使用 ncks 从 netCDF 文件中的变量中提取文本
- python - 从 ATMEGA2560 接收字节的问题
- highcharts - highcharts 中的月度数据,未明确提供所有月份标签
- apache-spark - 发生异常:pyspark.sql.utils.AnalysisException '必须使用 writeStream.start();;\nkafka 执行带有流式源的查询
- python - 在字典列表上左合并不起作用
- sql - 自然连接和减号运算符
- javascript - Mongoose 保存空数组错误“TypeError:无法读取属性 '1' of null”