Skip to content

react-native bundle command fails to find metro.config.js #2042

Description

@DaniyarJakupov

Environment

System:
OS: macOS 13.4.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 5.42 GB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 16.20.1
path: ~/.nvm/versions/node/v16.20.1/bin/node
Yarn:
version: 1.22.19
path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
npm:
version: 8.19.4
path: ~/.nvm/versions/node/v16.20.1/bin/npm
Watchman:
version: 2023.04.10.00
path: /usr/local/bin/watchman
Managers:
CocoaPods:
version: 1.12.1
path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 22.4
- iOS 16.4
- macOS 13.3
- tvOS 16.4
- watchOS 9.4
Android SDK:
API Levels:
- "23"
- "30"
- "31"
- "33"
Build Tools:
- 30.0.2
- 30.0.3
- 31.0.0
- 33.0.0
System Images:
- android-30 | Intel x86_64 Atom
- android-30 | Google APIs Intel x86 Atom
- android-30 | Google Play Intel x86 Atom
- android-33 | Google APIs Intel x86_64 Atom
- android-33 | Google Play Intel x86_64 Atom
Android NDK: Not Found
IDEs:
Android Studio: 2022.2 AI-222.4459.24.2221.10121639
Xcode:
version: 14.3.1/14E300c
path: /usr/bin/xcodebuild
Languages:
Java:
version: 11.0.20
path: /usr/bin/javac
Ruby:
version: 3.1.0
path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native:
installed: 0.72.3
wanted: 0.72.3
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: Not found
newArchEnabled: Not found
iOS:
hermesEnabled: false
newArchEnabled: false

Description

We have a react-native-web project with the following structure:

ProjectFolder
->node_modules
->packages
-> mobile
-> ios/android/metro.config.js

After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js

I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

{
platform: 'android',
dev: false,
bundleEncoding: 'utf8',
sourcemapUseAbsolutePath: false,
unstableTransformProfile: 'default',
resetCache: false,
readGlobalCache: false,
generateStaticViewConfigs: true,
assetsDest: '.tmp/CodePush',
bundleOutput: '.tmp/CodePush/index.android.bundle',
entryFile: './packages/mobile/index.android.js',
config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
}

The error happens here when loadMetroConfig is called.
In function loadMetroConfig(ctx, options = {}), options arg is defined:

{
maxWorkers: undefined,
resetCache: false,
config: '/Users/.../packages/mobile/metro.config.js'
}

But then this block happens:

const projectConfig = await resolveConfig(undefined, ctx.root);
if (projectConfig.isEmpty) {
throw new CLIError(`No metro config found in ${ctx.root}`);
}

and here projectConfig.isEmpty is true:

{
isEmpty: true,
filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
config: {}
}

The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

This is @react-native-community/cli version that is installed

{
"name": "@react-native-community/cli",
"version": "11.3.5",

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
       blocks
      (function() {
      function addCopyButtons() {
      document.querySelectorAll('pre code').forEach(function(codeBlock) {
      if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
      codeBlock.parentElement.setAttribute('data-copy-added', 'true');
      var btn = document.createElement('button');
      btn.textContent = 'Copy';
      btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
      btn.onmouseover = function() { this.style.opacity = '1'; };
      btn.onmouseout = function() { this.style.opacity = '0.7'; };
      btn.onclick = function() {
      navigator.clipboard.writeText(codeBlock.textContent).then(function() {
      btn.textContent = 'Copied!';
      setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
      });
      };
      codeBlock.parentElement.style.position = 'relative';
      codeBlock.parentElement.appendChild(btn);
      });
      }
      addCopyButtons();
      // Re-run on dynamic content
      var observer = new MutationObserver(addCopyButtons);
      observer.observe(document.body, { childList: true, subtree: true });
      })();
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
      Skip to content

      react-native bundle command fails to find metro.config.js #2042

      Description

      @DaniyarJakupov

      Environment

      System:
      OS: macOS 13.4.1
      CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
      Memory: 5.42 GB / 32.00 GB
      Shell:
      version: "5.9"
      path: /bin/zsh
      Binaries:
      Node:
      version: 16.20.1
      path: ~/.nvm/versions/node/v16.20.1/bin/node
      Yarn:
      version: 1.22.19
      path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
      npm:
      version: 8.19.4
      path: ~/.nvm/versions/node/v16.20.1/bin/npm
      Watchman:
      version: 2023.04.10.00
      path: /usr/local/bin/watchman
      Managers:
      CocoaPods:
      version: 1.12.1
      path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
      SDKs:
      iOS SDK:
      Platforms:
      - DriverKit 22.4
      - iOS 16.4
      - macOS 13.3
      - tvOS 16.4
      - watchOS 9.4
      Android SDK:
      API Levels:
      - "23"
      - "30"
      - "31"
      - "33"
      Build Tools:
      - 30.0.2
      - 30.0.3
      - 31.0.0
      - 33.0.0
      System Images:
      - android-30 | Intel x86_64 Atom
      - android-30 | Google APIs Intel x86 Atom
      - android-30 | Google Play Intel x86 Atom
      - android-33 | Google APIs Intel x86_64 Atom
      - android-33 | Google Play Intel x86_64 Atom
      Android NDK: Not Found
      IDEs:
      Android Studio: 2022.2 AI-222.4459.24.2221.10121639
      Xcode:
      version: 14.3.1/14E300c
      path: /usr/bin/xcodebuild
      Languages:
      Java:
      version: 11.0.20
      path: /usr/bin/javac
      Ruby:
      version: 3.1.0
      path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
      npmPackages:
      "@react-native-community/cli": Not Found
      react: Not Found
      react-native:
      installed: 0.72.3
      wanted: 0.72.3
      react-native-macos: Not Found
      npmGlobalPackages:
      "*react-native*": Not Found
      Android:
      hermesEnabled: Not found
      newArchEnabled: Not found
      iOS:
      hermesEnabled: false
      newArchEnabled: false
      

      Description

      We have a react-native-web project with the following structure:

      ProjectFolder
      ->node_modules
      ->packages
      -> mobile
      -> ios/android/metro.config.js
      

      After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

      It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

      node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
      

      I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

      {
      platform: 'android',
      dev: false,
      bundleEncoding: 'utf8',
      sourcemapUseAbsolutePath: false,
      unstableTransformProfile: 'default',
      resetCache: false,
      readGlobalCache: false,
      generateStaticViewConfigs: true,
      assetsDest: '.tmp/CodePush',
      bundleOutput: '.tmp/CodePush/index.android.bundle',
      entryFile: './packages/mobile/index.android.js',
      config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
      }
      

      The error happens here when loadMetroConfig is called.
      In function loadMetroConfig(ctx, options = {}), options arg is defined:

      {
      maxWorkers: undefined,
      resetCache: false,
      config: '/Users/.../packages/mobile/metro.config.js'
      }
      

      But then this block happens:

      const projectConfig = await resolveConfig(undefined, ctx.root);
      if (projectConfig.isEmpty) {
      throw new CLIError(`No metro config found in ${ctx.root}`);
      }
      

      and here projectConfig.isEmpty is true:

      {
      isEmpty: true,
      filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
      config: {}
      }
      

      The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

      This is @react-native-community/cli version that is installed

      {
      "name": "@react-native-community/cli",
      "version": "11.3.5",
      

      Metadata

      Metadata

      Assignees

      No one assigned

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
          Skip to content

          react-native bundle command fails to find metro.config.js #2042

          Description

          @DaniyarJakupov

          Environment

          System:
          OS: macOS 13.4.1
          CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
          Memory: 5.42 GB / 32.00 GB
          Shell:
          version: "5.9"
          path: /bin/zsh
          Binaries:
          Node:
          version: 16.20.1
          path: ~/.nvm/versions/node/v16.20.1/bin/node
          Yarn:
          version: 1.22.19
          path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
          npm:
          version: 8.19.4
          path: ~/.nvm/versions/node/v16.20.1/bin/npm
          Watchman:
          version: 2023.04.10.00
          path: /usr/local/bin/watchman
          Managers:
          CocoaPods:
          version: 1.12.1
          path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
          SDKs:
          iOS SDK:
          Platforms:
          - DriverKit 22.4
          - iOS 16.4
          - macOS 13.3
          - tvOS 16.4
          - watchOS 9.4
          Android SDK:
          API Levels:
          - "23"
          - "30"
          - "31"
          - "33"
          Build Tools:
          - 30.0.2
          - 30.0.3
          - 31.0.0
          - 33.0.0
          System Images:
          - android-30 | Intel x86_64 Atom
          - android-30 | Google APIs Intel x86 Atom
          - android-30 | Google Play Intel x86 Atom
          - android-33 | Google APIs Intel x86_64 Atom
          - android-33 | Google Play Intel x86_64 Atom
          Android NDK: Not Found
          IDEs:
          Android Studio: 2022.2 AI-222.4459.24.2221.10121639
          Xcode:
          version: 14.3.1/14E300c
          path: /usr/bin/xcodebuild
          Languages:
          Java:
          version: 11.0.20
          path: /usr/bin/javac
          Ruby:
          version: 3.1.0
          path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
          npmPackages:
          "@react-native-community/cli": Not Found
          react: Not Found
          react-native:
          installed: 0.72.3
          wanted: 0.72.3
          react-native-macos: Not Found
          npmGlobalPackages:
          "*react-native*": Not Found
          Android:
          hermesEnabled: Not found
          newArchEnabled: Not found
          iOS:
          hermesEnabled: false
          newArchEnabled: false
          

          Description

          We have a react-native-web project with the following structure:

          ProjectFolder
          ->node_modules
          ->packages
          -> mobile
          -> ios/android/metro.config.js
          

          After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

          It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

          node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
          

          I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

          {
          platform: 'android',
          dev: false,
          bundleEncoding: 'utf8',
          sourcemapUseAbsolutePath: false,
          unstableTransformProfile: 'default',
          resetCache: false,
          readGlobalCache: false,
          generateStaticViewConfigs: true,
          assetsDest: '.tmp/CodePush',
          bundleOutput: '.tmp/CodePush/index.android.bundle',
          entryFile: './packages/mobile/index.android.js',
          config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
          }
          

          The error happens here when loadMetroConfig is called.
          In function loadMetroConfig(ctx, options = {}), options arg is defined:

          {
          maxWorkers: undefined,
          resetCache: false,
          config: '/Users/.../packages/mobile/metro.config.js'
          }
          

          But then this block happens:

          const projectConfig = await resolveConfig(undefined, ctx.root);
          if (projectConfig.isEmpty) {
          throw new CLIError(`No metro config found in ${ctx.root}`);
          }
          

          and here projectConfig.isEmpty is true:

          {
          isEmpty: true,
          filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
          config: {}
          }
          

          The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

          This is @react-native-community/cli version that is installed

          {
          "name": "@react-native-community/cli",
          "version": "11.3.5",
          

          Metadata

          Metadata

          Assignees

          No one assigned

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
              Skip to content

              react-native bundle command fails to find metro.config.js #2042

              Description

              @DaniyarJakupov

              Environment

              System:
              OS: macOS 13.4.1
              CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
              Memory: 5.42 GB / 32.00 GB
              Shell:
              version: "5.9"
              path: /bin/zsh
              Binaries:
              Node:
              version: 16.20.1
              path: ~/.nvm/versions/node/v16.20.1/bin/node
              Yarn:
              version: 1.22.19
              path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
              npm:
              version: 8.19.4
              path: ~/.nvm/versions/node/v16.20.1/bin/npm
              Watchman:
              version: 2023.04.10.00
              path: /usr/local/bin/watchman
              Managers:
              CocoaPods:
              version: 1.12.1
              path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
              SDKs:
              iOS SDK:
              Platforms:
              - DriverKit 22.4
              - iOS 16.4
              - macOS 13.3
              - tvOS 16.4
              - watchOS 9.4
              Android SDK:
              API Levels:
              - "23"
              - "30"
              - "31"
              - "33"
              Build Tools:
              - 30.0.2
              - 30.0.3
              - 31.0.0
              - 33.0.0
              System Images:
              - android-30 | Intel x86_64 Atom
              - android-30 | Google APIs Intel x86 Atom
              - android-30 | Google Play Intel x86 Atom
              - android-33 | Google APIs Intel x86_64 Atom
              - android-33 | Google Play Intel x86_64 Atom
              Android NDK: Not Found
              IDEs:
              Android Studio: 2022.2 AI-222.4459.24.2221.10121639
              Xcode:
              version: 14.3.1/14E300c
              path: /usr/bin/xcodebuild
              Languages:
              Java:
              version: 11.0.20
              path: /usr/bin/javac
              Ruby:
              version: 3.1.0
              path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
              npmPackages:
              "@react-native-community/cli": Not Found
              react: Not Found
              react-native:
              installed: 0.72.3
              wanted: 0.72.3
              react-native-macos: Not Found
              npmGlobalPackages:
              "*react-native*": Not Found
              Android:
              hermesEnabled: Not found
              newArchEnabled: Not found
              iOS:
              hermesEnabled: false
              newArchEnabled: false
              

              Description

              We have a react-native-web project with the following structure:

              ProjectFolder
              ->node_modules
              ->packages
              -> mobile
              -> ios/android/metro.config.js
              

              After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

              It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

              node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
              

              I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

              {
              platform: 'android',
              dev: false,
              bundleEncoding: 'utf8',
              sourcemapUseAbsolutePath: false,
              unstableTransformProfile: 'default',
              resetCache: false,
              readGlobalCache: false,
              generateStaticViewConfigs: true,
              assetsDest: '.tmp/CodePush',
              bundleOutput: '.tmp/CodePush/index.android.bundle',
              entryFile: './packages/mobile/index.android.js',
              config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
              }
              

              The error happens here when loadMetroConfig is called.
              In function loadMetroConfig(ctx, options = {}), options arg is defined:

              {
              maxWorkers: undefined,
              resetCache: false,
              config: '/Users/.../packages/mobile/metro.config.js'
              }
              

              But then this block happens:

              const projectConfig = await resolveConfig(undefined, ctx.root);
              if (projectConfig.isEmpty) {
              throw new CLIError(`No metro config found in ${ctx.root}`);
              }
              

              and here projectConfig.isEmpty is true:

              {
              isEmpty: true,
              filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
              config: {}
              }
              

              The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

              This is @react-native-community/cli version that is installed

              {
              "name": "@react-native-community/cli",
              "version": "11.3.5",
              

              Metadata

              Metadata

              Assignees

              No one assigned

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
                  Skip to content

                  react-native bundle command fails to find metro.config.js #2042

                  Description

                  @DaniyarJakupov

                  Environment

                  System:
                  OS: macOS 13.4.1
                  CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
                  Memory: 5.42 GB / 32.00 GB
                  Shell:
                  version: "5.9"
                  path: /bin/zsh
                  Binaries:
                  Node:
                  version: 16.20.1
                  path: ~/.nvm/versions/node/v16.20.1/bin/node
                  Yarn:
                  version: 1.22.19
                  path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
                  npm:
                  version: 8.19.4
                  path: ~/.nvm/versions/node/v16.20.1/bin/npm
                  Watchman:
                  version: 2023.04.10.00
                  path: /usr/local/bin/watchman
                  Managers:
                  CocoaPods:
                  version: 1.12.1
                  path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
                  SDKs:
                  iOS SDK:
                  Platforms:
                  - DriverKit 22.4
                  - iOS 16.4
                  - macOS 13.3
                  - tvOS 16.4
                  - watchOS 9.4
                  Android SDK:
                  API Levels:
                  - "23"
                  - "30"
                  - "31"
                  - "33"
                  Build Tools:
                  - 30.0.2
                  - 30.0.3
                  - 31.0.0
                  - 33.0.0
                  System Images:
                  - android-30 | Intel x86_64 Atom
                  - android-30 | Google APIs Intel x86 Atom
                  - android-30 | Google Play Intel x86 Atom
                  - android-33 | Google APIs Intel x86_64 Atom
                  - android-33 | Google Play Intel x86_64 Atom
                  Android NDK: Not Found
                  IDEs:
                  Android Studio: 2022.2 AI-222.4459.24.2221.10121639
                  Xcode:
                  version: 14.3.1/14E300c
                  path: /usr/bin/xcodebuild
                  Languages:
                  Java:
                  version: 11.0.20
                  path: /usr/bin/javac
                  Ruby:
                  version: 3.1.0
                  path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
                  npmPackages:
                  "@react-native-community/cli": Not Found
                  react: Not Found
                  react-native:
                  installed: 0.72.3
                  wanted: 0.72.3
                  react-native-macos: Not Found
                  npmGlobalPackages:
                  "*react-native*": Not Found
                  Android:
                  hermesEnabled: Not found
                  newArchEnabled: Not found
                  iOS:
                  hermesEnabled: false
                  newArchEnabled: false
                  

                  Description

                  We have a react-native-web project with the following structure:

                  ProjectFolder
                  ->node_modules
                  ->packages
                  -> mobile
                  -> ios/android/metro.config.js
                  

                  After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

                  It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

                  node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
                  

                  I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

                  {
                  platform: 'android',
                  dev: false,
                  bundleEncoding: 'utf8',
                  sourcemapUseAbsolutePath: false,
                  unstableTransformProfile: 'default',
                  resetCache: false,
                  readGlobalCache: false,
                  generateStaticViewConfigs: true,
                  assetsDest: '.tmp/CodePush',
                  bundleOutput: '.tmp/CodePush/index.android.bundle',
                  entryFile: './packages/mobile/index.android.js',
                  config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
                  }
                  

                  The error happens here when loadMetroConfig is called.
                  In function loadMetroConfig(ctx, options = {}), options arg is defined:

                  {
                  maxWorkers: undefined,
                  resetCache: false,
                  config: '/Users/.../packages/mobile/metro.config.js'
                  }
                  

                  But then this block happens:

                  const projectConfig = await resolveConfig(undefined, ctx.root);
                  if (projectConfig.isEmpty) {
                  throw new CLIError(`No metro config found in ${ctx.root}`);
                  }
                  

                  and here projectConfig.isEmpty is true:

                  {
                  isEmpty: true,
                  filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
                  config: {}
                  }
                  

                  The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

                  This is @react-native-community/cli version that is installed

                  {
                  "name": "@react-native-community/cli",
                  "version": "11.3.5",
                  

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
                      Skip to content

                      react-native bundle command fails to find metro.config.js #2042

                      Description

                      @DaniyarJakupov

                      Environment

                      System:
                      OS: macOS 13.4.1
                      CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
                      Memory: 5.42 GB / 32.00 GB
                      Shell:
                      version: "5.9"
                      path: /bin/zsh
                      Binaries:
                      Node:
                      version: 16.20.1
                      path: ~/.nvm/versions/node/v16.20.1/bin/node
                      Yarn:
                      version: 1.22.19
                      path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
                      npm:
                      version: 8.19.4
                      path: ~/.nvm/versions/node/v16.20.1/bin/npm
                      Watchman:
                      version: 2023.04.10.00
                      path: /usr/local/bin/watchman
                      Managers:
                      CocoaPods:
                      version: 1.12.1
                      path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
                      SDKs:
                      iOS SDK:
                      Platforms:
                      - DriverKit 22.4
                      - iOS 16.4
                      - macOS 13.3
                      - tvOS 16.4
                      - watchOS 9.4
                      Android SDK:
                      API Levels:
                      - "23"
                      - "30"
                      - "31"
                      - "33"
                      Build Tools:
                      - 30.0.2
                      - 30.0.3
                      - 31.0.0
                      - 33.0.0
                      System Images:
                      - android-30 | Intel x86_64 Atom
                      - android-30 | Google APIs Intel x86 Atom
                      - android-30 | Google Play Intel x86 Atom
                      - android-33 | Google APIs Intel x86_64 Atom
                      - android-33 | Google Play Intel x86_64 Atom
                      Android NDK: Not Found
                      IDEs:
                      Android Studio: 2022.2 AI-222.4459.24.2221.10121639
                      Xcode:
                      version: 14.3.1/14E300c
                      path: /usr/bin/xcodebuild
                      Languages:
                      Java:
                      version: 11.0.20
                      path: /usr/bin/javac
                      Ruby:
                      version: 3.1.0
                      path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
                      npmPackages:
                      "@react-native-community/cli": Not Found
                      react: Not Found
                      react-native:
                      installed: 0.72.3
                      wanted: 0.72.3
                      react-native-macos: Not Found
                      npmGlobalPackages:
                      "*react-native*": Not Found
                      Android:
                      hermesEnabled: Not found
                      newArchEnabled: Not found
                      iOS:
                      hermesEnabled: false
                      newArchEnabled: false
                      

                      Description

                      We have a react-native-web project with the following structure:

                      ProjectFolder
                      ->node_modules
                      ->packages
                      -> mobile
                      -> ios/android/metro.config.js
                      

                      After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

                      It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

                      node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
                      

                      I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

                      {
                      platform: 'android',
                      dev: false,
                      bundleEncoding: 'utf8',
                      sourcemapUseAbsolutePath: false,
                      unstableTransformProfile: 'default',
                      resetCache: false,
                      readGlobalCache: false,
                      generateStaticViewConfigs: true,
                      assetsDest: '.tmp/CodePush',
                      bundleOutput: '.tmp/CodePush/index.android.bundle',
                      entryFile: './packages/mobile/index.android.js',
                      config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
                      }
                      

                      The error happens here when loadMetroConfig is called.
                      In function loadMetroConfig(ctx, options = {}), options arg is defined:

                      {
                      maxWorkers: undefined,
                      resetCache: false,
                      config: '/Users/.../packages/mobile/metro.config.js'
                      }
                      

                      But then this block happens:

                      const projectConfig = await resolveConfig(undefined, ctx.root);
                      if (projectConfig.isEmpty) {
                      throw new CLIError(`No metro config found in ${ctx.root}`);
                      }
                      

                      and here projectConfig.isEmpty is true:

                      {
                      isEmpty: true,
                      filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
                      config: {}
                      }
                      

                      The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

                      This is @react-native-community/cli version that is installed

                      {
                      "name": "@react-native-community/cli",
                      "version": "11.3.5",
                      

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
                          Skip to content

                          react-native bundle command fails to find metro.config.js #2042

                          Description

                          @DaniyarJakupov

                          Environment

                          System:
                          OS: macOS 13.4.1
                          CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
                          Memory: 5.42 GB / 32.00 GB
                          Shell:
                          version: "5.9"
                          path: /bin/zsh
                          Binaries:
                          Node:
                          version: 16.20.1
                          path: ~/.nvm/versions/node/v16.20.1/bin/node
                          Yarn:
                          version: 1.22.19
                          path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
                          npm:
                          version: 8.19.4
                          path: ~/.nvm/versions/node/v16.20.1/bin/npm
                          Watchman:
                          version: 2023.04.10.00
                          path: /usr/local/bin/watchman
                          Managers:
                          CocoaPods:
                          version: 1.12.1
                          path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
                          SDKs:
                          iOS SDK:
                          Platforms:
                          - DriverKit 22.4
                          - iOS 16.4
                          - macOS 13.3
                          - tvOS 16.4
                          - watchOS 9.4
                          Android SDK:
                          API Levels:
                          - "23"
                          - "30"
                          - "31"
                          - "33"
                          Build Tools:
                          - 30.0.2
                          - 30.0.3
                          - 31.0.0
                          - 33.0.0
                          System Images:
                          - android-30 | Intel x86_64 Atom
                          - android-30 | Google APIs Intel x86 Atom
                          - android-30 | Google Play Intel x86 Atom
                          - android-33 | Google APIs Intel x86_64 Atom
                          - android-33 | Google Play Intel x86_64 Atom
                          Android NDK: Not Found
                          IDEs:
                          Android Studio: 2022.2 AI-222.4459.24.2221.10121639
                          Xcode:
                          version: 14.3.1/14E300c
                          path: /usr/bin/xcodebuild
                          Languages:
                          Java:
                          version: 11.0.20
                          path: /usr/bin/javac
                          Ruby:
                          version: 3.1.0
                          path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
                          npmPackages:
                          "@react-native-community/cli": Not Found
                          react: Not Found
                          react-native:
                          installed: 0.72.3
                          wanted: 0.72.3
                          react-native-macos: Not Found
                          npmGlobalPackages:
                          "*react-native*": Not Found
                          Android:
                          hermesEnabled: Not found
                          newArchEnabled: Not found
                          iOS:
                          hermesEnabled: false
                          newArchEnabled: false
                          

                          Description

                          We have a react-native-web project with the following structure:

                          ProjectFolder
                          ->node_modules
                          ->packages
                          -> mobile
                          -> ios/android/metro.config.js
                          

                          After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

                          It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

                          node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
                          

                          I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

                          {
                          platform: 'android',
                          dev: false,
                          bundleEncoding: 'utf8',
                          sourcemapUseAbsolutePath: false,
                          unstableTransformProfile: 'default',
                          resetCache: false,
                          readGlobalCache: false,
                          generateStaticViewConfigs: true,
                          assetsDest: '.tmp/CodePush',
                          bundleOutput: '.tmp/CodePush/index.android.bundle',
                          entryFile: './packages/mobile/index.android.js',
                          config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
                          }
                          

                          The error happens here when loadMetroConfig is called.
                          In function loadMetroConfig(ctx, options = {}), options arg is defined:

                          {
                          maxWorkers: undefined,
                          resetCache: false,
                          config: '/Users/.../packages/mobile/metro.config.js'
                          }
                          

                          But then this block happens:

                          const projectConfig = await resolveConfig(undefined, ctx.root);
                          if (projectConfig.isEmpty) {
                          throw new CLIError(`No metro config found in ${ctx.root}`);
                          }
                          

                          and here projectConfig.isEmpty is true:

                          {
                          isEmpty: true,
                          filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
                          config: {}
                          }
                          

                          The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

                          This is @react-native-community/cli version that is installed

                          {
                          "name": "@react-native-community/cli",
                          "version": "11.3.5",
                          

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); react-native bundle command fails to find metro.config.js · Issue #2042 · react-native-community/cli · GitHub
                              Skip to content

                              react-native bundle command fails to find metro.config.js #2042

                              Description

                              @DaniyarJakupov

                              Environment

                              System:
                              OS: macOS 13.4.1
                              CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
                              Memory: 5.42 GB / 32.00 GB
                              Shell:
                              version: "5.9"
                              path: /bin/zsh
                              Binaries:
                              Node:
                              version: 16.20.1
                              path: ~/.nvm/versions/node/v16.20.1/bin/node
                              Yarn:
                              version: 1.22.19
                              path: ~/Documents/.../ProjectFolder/node_modules/.bin/yarn
                              npm:
                              version: 8.19.4
                              path: ~/.nvm/versions/node/v16.20.1/bin/npm
                              Watchman:
                              version: 2023.04.10.00
                              path: /usr/local/bin/watchman
                              Managers:
                              CocoaPods:
                              version: 1.12.1
                              path: /Users/daniyarjakupov/.gem/ruby/3.1.0/bin/pod
                              SDKs:
                              iOS SDK:
                              Platforms:
                              - DriverKit 22.4
                              - iOS 16.4
                              - macOS 13.3
                              - tvOS 16.4
                              - watchOS 9.4
                              Android SDK:
                              API Levels:
                              - "23"
                              - "30"
                              - "31"
                              - "33"
                              Build Tools:
                              - 30.0.2
                              - 30.0.3
                              - 31.0.0
                              - 33.0.0
                              System Images:
                              - android-30 | Intel x86_64 Atom
                              - android-30 | Google APIs Intel x86 Atom
                              - android-30 | Google Play Intel x86 Atom
                              - android-33 | Google APIs Intel x86_64 Atom
                              - android-33 | Google Play Intel x86_64 Atom
                              Android NDK: Not Found
                              IDEs:
                              Android Studio: 2022.2 AI-222.4459.24.2221.10121639
                              Xcode:
                              version: 14.3.1/14E300c
                              path: /usr/bin/xcodebuild
                              Languages:
                              Java:
                              version: 11.0.20
                              path: /usr/bin/javac
                              Ruby:
                              version: 3.1.0
                              path: /Users/daniyarjakupov/.rubies/ruby-3.1.0/bin/ruby
                              npmPackages:
                              "@react-native-community/cli": Not Found
                              react: Not Found
                              react-native:
                              installed: 0.72.3
                              wanted: 0.72.3
                              react-native-macos: Not Found
                              npmGlobalPackages:
                              "*react-native*": Not Found
                              Android:
                              hermesEnabled: Not found
                              newArchEnabled: Not found
                              iOS:
                              hermesEnabled: false
                              newArchEnabled: false
                              

                              Description

                              We have a react-native-web project with the following structure:

                              ProjectFolder
                              ->node_modules
                              ->packages
                              -> mobile
                              -> ios/android/metro.config.js
                              

                              After upgrading react-native to 0.72.3 react-native bundle command fails with No metro config found in /Users/.../Documents/ProjectFolder.

                              It happens during bundling phase of codepush release. The command is run from ProjectFolder root directory so --config and some other flags are passed with correct paths:

                              node node_modules/.bin/react-native bundle --assets-dest .tmp/CodePush --bundle-output .tmp/CodePush/index.android.bundle --dev false --entry-file ./packages/mobile/index.android.js --platform android --config ./packages/mobile/metro.config.js
                              

                              I tried to debug buildBundle in /cli-plugin-metro/src/commands/bundle/buildBundle.ts and args are there including config:

                              {
                              platform: 'android',
                              dev: false,
                              bundleEncoding: 'utf8',
                              sourcemapUseAbsolutePath: false,
                              unstableTransformProfile: 'default',
                              resetCache: false,
                              readGlobalCache: false,
                              generateStaticViewConfigs: true,
                              assetsDest: '.tmp/CodePush',
                              bundleOutput: '.tmp/CodePush/index.android.bundle',
                              entryFile: './packages/mobile/index.android.js',
                              config: '/Users/.../ProjectFolder/packages/mobile/metro.config.js'
                              }
                              

                              The error happens here when loadMetroConfig is called.
                              In function loadMetroConfig(ctx, options = {}), options arg is defined:

                              {
                              maxWorkers: undefined,
                              resetCache: false,
                              config: '/Users/.../packages/mobile/metro.config.js'
                              }
                              

                              But then this block happens:

                              const projectConfig = await resolveConfig(undefined, ctx.root);
                              if (projectConfig.isEmpty) {
                              throw new CLIError(`No metro config found in ${ctx.root}`);
                              }
                              

                              and here projectConfig.isEmpty is true:

                              {
                              isEmpty: true,
                              filepath: '/Users/.../ProjectFolder/metro.config.stub.js',
                              config: {}
                              }
                              

                              The question is why resolveConfig does not take into account custom path to metro.config.js? In fact options are not even passed to it.

                              This is @react-native-community/cli version that is installed

                              {
                              "name": "@react-native-community/cli",
                              "version": "11.3.5",
                              

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions