Javascript React本机导入错误:无法使用.bin解析模块(如何导入特定类型的文件?)

Javascript React本机导入错误:无法使用.bin解析模块(如何导入特定类型的文件?),javascript,react-native,tensorflow,require,tensorflow.js,Javascript,React Native,Tensorflow,Require,Tensorflow.js,我在运行react本机应用程序时收到一个错误 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函数的文件路径正确。我认为问题是在rea

我在运行react本机应用程序时收到一个错误

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函数的文件路径正确。我认为问题是在react native中导出时不支持.bin扩展 代码:

我补充说,我所尝试的是:

"packagerOpts": {
      "assetExts": ["bin", "pb", "txt"]
}
在my app.json中,使用bin扩展名


如何配置react本机应用程序,使其能够将.bin文件扩展名导入JS文件?如果有人能帮我解决这个问题,那就太好了。

我找到了答案。可在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/])
  },
};

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

你救了我一天。我有一个js文件,没有js例外!
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/])
  },
};