Expo sdk 41 missing-asset-registry-path @expo\vector-icons / images

Please provide the following:

  1. SDK Version:
    “expo”: “^41.0.0”,
    @expo/vector-icons”: “^12.0.0”,

  2. Platforms(Android/iOS/web/all): Android

After upgrading an working app from expo sdk 40 to 41 im geting this error while bundle starts to load

error: Error: Unable to resolve module missing-asset-registry-path from D:\workspace\app\node_modules\@expo\vector-icons\build\vendor\react-native-vector-icons\Fonts\AntDesign.ttf: missing-asset-registry-path could not be found within the project.

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*

sometimes when i try to reload the bundle the error change to a diferent asset like a image or another font from @expo/vector-icon

error: Error: Unable to resolve module missing-asset-registry-path from D:\workspace\app\node_modules\react-native\Libraries\LogBox\UI\LogBoxImages\close.png: missing-asset-registry-path could not be found within the project.

I have tried all the suggested steps and the path to AntDesign.ttf is correct and the font file exists

babel.config.js

module.exports = function config(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      [
        'module:react-native-dotenv',
        {
          moduleName: '@env',
          path: '.env',
          blacklist: null,
          whitelist: null,
          safe: false,
          allowUndefined: false,
        },
      ],
      [
        'module-resolver',
        {
          root: ['.'],
          alias: {
            '@': './src',
          },
        },
      ],
      'react-native-reanimated/plugin',
    ],
    env: {
      production: {
        plugins: ['react-native-paper/babel'],
      },
    },
  };
};

metro.config.js

const { getDefaultConfig } = require('expo/metro-config');

const defaultConfig = getDefaultConfig(__dirname);

module.exports = async () => {
  const newConfig = {
    ...defaultConfig,
    resolver: {
      assetExts: [...defaultConfig.resolver.assetExts, 'db', 'sqlite'],
      sourceExts: [...defaultConfig.resolver.sourceExts, 'svg'],
    },
    transformer: {
      minifierConfig: {
        keep_classnames: true,
        keep_fnames: true,
        mangle: {
          keep_classnames: true,
          keep_fnames: true,
        },
        output: {
          ascii_only: true,
          quote_style: 3,
          wrap_iife: true,
        },
        sourceMap: {
          includeSources: false,
        },
        toplevel: false,
        compress: {
          reduce_funcs: false,
        },
      },
    },
  };

  return newConfig;
};

its something with metro.config async, i have switched to static return and it worked

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.