为了账号安全,请及时绑定邮箱和手机立即绑定

React Native 导入错误:无法使用 .bin 解析模块(如何导入某种类型的文件?)

React Native 导入错误:无法使用 .bin 解析模块(如何导入某种类型的文件?)

宝慕林4294392 2022-05-22 11:20:34
运行反应本机应用程序时收到错误消息。Unable to resolve "./tfjs_model_to_use_quantized/content/tfjs_model_to_use/group1-shard1of1.bin" from "components\ImageInput.js"我试图在我的 JS 代码中导入一个名为 group1-shardof1.bin 的文件。其他 require 函数(例如,对于 json 文件)工作正常,并且此特定 require 函数的文件路径是正确的。我认为问题在于 .bin 扩展名不支持在反应本机代码中导出:const modelWeights = require('./tfjs_model_to_use_quantized/content/tfjs_model_to_use/group1-shard1of1.bin')我已经尝试过,我补充说:"packagerOpts": {      "assetExts": ["bin", "pb", "txt"]}在我的 app.json 中,带有 bin 扩展名。如何配置我的 react-native 应用程序以便能够将 .bin 文件扩展名导入 JS 文件?如果有人可以帮助我解决这个问题,那就太好了。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我找到了答案。可以在 metro.config.js 中配置要由 react native 解析的其他文件类型:


const blacklist = require('metro-config/src/defaults/blacklist');

module.exports = {

  transformer: {

    getTransformOptions: async () => ({

      transform: {

        experimentalImportSupport: false,

        inlineRequires: false,

      },

    }),

  },

  resolver: {

    // (add 'bin' to assetExts)

    assetExts: ['bin', 'txt', 'jpg', 'png', 'ttf'],

    sourceExts: ['js', 'json', 'ts', 'tsx', 'jsx'],

    blacklistRE: blacklist([/platform_node/])

  },

};

关键部分是assetExts 部分,将“bin”添加到列表中。在我的具体情况下,由于某种原因没有创建 metro.config.js 文件,但是我使用上面的代码创建了一个新文件,并且 .bin 的导入工作正常。


查看完整回答
反对 回复 2022-05-22
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号