标签: metro-bundler

启动 Expo 项目时出现“错误:找不到模块‘metro-core’”

每当我使用命令启动Expo Goexpo start时,都会出现此错误:

Error: Cannot find module 'metro-core'
Require stack:
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/src/start/server/metro/instantiateMetro.js
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/src/start/server/metro/MetroBundlerDevServer.js
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/src/start/server/DevServerManager.js
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/src/start/startAsync.js
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/src/start/index.js
- /usr/local/lib/node_modules/expo/node_modules/@expo/cli/build/bin/cli
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装metro-core,但没有效果。

node.js npm react-native expo metro-bundler

13
推荐指数
2
解决办法
2万
查看次数

带有 Expo dockerized 应用程序的 Metro 捆绑程序无法正常工作

我正在尝试对 Expo React Native 应用程序进行 docker 化,以便我的团队合作伙伴中的任何人都可以下载该存储库,然后轻松地docker-compose up在他们的计算机中运行相同的 expo 服务器。
到目前为止,我可以构建容器,并且它显示的信息与我在计算机上本地运行它时显示的信息相同。

在此输入图像描述

尝试启动 Metro 捆绑程序时出现问题,网址http://localhost:19002无法访问。端口 19001 不会发生这种情况,该端口工作正常。此外,我尝试用我的 iPhone 设备扫描二维码,但它也不起作用,因为我猜是找不到 docker ip。

我不知道我做错了什么,并且网络上没有太多关于 dockerize expo 的信息。

这些是我的 dockerfile 和 docker-compose.yml

FROM node:latest

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package*.json /usr/src/app/
COPY app.json /usr/src/app/

RUN npm install -g expo-cli

EXPOSE 19000
EXPOSE 19001
EXPOSE 19002

CMD npm i -f && npm start
Run Code Online (Sandbox Code Playgroud)
version: '3.7' # Specify docker-compose version

# Define the services/containers to be run
services:
   expo: # …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose react-native expo metro-bundler

10
推荐指数
2
解决办法
4235
查看次数

React Native localhost 另一个调试器已经连接

不确定是否有人遇到过这个问题,因为我无法在任何地方查找它,但我看不到 React Native 应用程序的任何日志,因为浏览器控制台告诉我“另一个调试器已经连接”,这是一个不断循环的警告。

Metro bundler 告诉我,我必须在浏览器中查看 javascript 日志。我无法在不调试的情况下处理我的应用程序,任何人都可以帮忙吗?

地铁总站 Chrome 开发者工具

reactjs react-native react-native-ios metro-bundler

10
推荐指数
1
解决办法
5271
查看次数

无法加载脚本。确保您正在运行 Metro 服务器或者您的捆绑包“index.android.bundle”已正确打包以供发布

我使用react-native init创建了一个新项目。我正在将react-native与以下内容一起使用:“react”:“16.13.1”,“react-native”:“0.63.2”。

当我尝试使用react-native run-android命令运行应用程序时,它在终端中显示构建成功,但我的 Metro 捆绑程序中没有出现任何内容(我正在附加它的图像),并且我的模拟器显示“无法加载脚本”问题。 无法加载脚本

如果我按“R”在节点(捆绑程序)中重新加载应用程序,它会说没有连接到它的设备,但我的模拟器正在运行。我在个人设备上也遇到了同样的问题。 Metro 捆绑程序未运行

我还尝试创建资产文件夹android/app/src/main/assets并运行以下命令: react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

只有当应用程序显示在模拟器上时,并且当我在App.js文件中进行更改并保存它时,模拟器中才不会发生任何更改。

如果我重新加载,则会弹出错误“无法连接到开发服务器”。 无法连接到开发服务器 甚至尝试了adb反向并将“dev”选项更改为本地主机和端口8081,但它没有用。(如果有任何特定路径我应该尝试上述步骤,请提及)。

我到底做错了什么?

任何人都可以帮忙吗?

PS:我使用的是Windows 10机器。

谢谢。

adb android-virtual-device react-native metro-bundler

10
推荐指数
2
解决办法
1万
查看次数

Metro Builder:SyntaxError:意外的令牌 = 升级到 React Native 0.65.1 后

今天我更新到了 React Native 版本 0.65.1。之后我无法启动 Metro 服务器

我现在在构建 Release .apk 时收到以下错误消息:

    node_modules/metro/src/Server.js:350
  processRequest = (req, res, next) => {
                 ^

SyntaxError: Unexpected token =
    at new Script (vm.js:80:7)
    at createScript (vm.js:274:10)
    at Object.runInThisContext (vm.js:326:10)
    at Module._compile (internal/modules/cjs/loader.js:664:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
info Run CLI with --verbose flag for more details.

> Task :app:bundleReleaseJsAndAssets FAILED
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • 更新节点
  • 保洁工程
  • 重新启动计算机

这是 Metro 服务器节点模块的片段

processRequest = (req, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript react-native metro-bundler

10
推荐指数
1
解决办法
7255
查看次数

指向原始文件的 React Native 堆栈跟踪

当我的 React Native 应用程序出现错误时,打印到控制台的堆栈跟踪指向而不是index.bundle原始源代码(请参见下面的示例)。有没有办法将 React Native 配置为使用源映射,以便日志正确显示?

仅当从异步回调或渲染之外的某些内容引发错误时,才会出现此问题。如果我在组件内抛出错误,则该错误会在控制台中显示正确的堆栈跟踪。有趣的是,错误始终在 LogBox 中显示正确的堆栈跟踪。

我正在react-native run-android通过 Metro 运行它并查看日志。为了澄清,我试图让它适用于本地调试版本,而不是生产/发布版本。理想情况下,日志会在控制台中显示正确的堆栈,这样我就不必手动符号化它们或在 LogBox 中查找错误。

console.error 的结果示例:

Error: Connection closed
    at anonymous (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.myapp.local&modulesOnly=false&runModule=true:261835:40)
    at forEach (native)
    at flushVolatile (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.myapp.local&modulesOnly=false&runModule=true:261833:33)
    at anonymous (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.myapp.local&modulesOnly=false&runModule=true:262065:20)
    at apply (native)
Run Code Online (Sandbox Code Playgroud)

先感谢您!

source-maps react-native metro-bundler

10
推荐指数
1
解决办法
2282
查看次数

如何在我的 React-Native 开发环境中指定 Metro Bundler IP 地址?

不确定这是否可能,但这里是:

设置

  • 我有一个使用 React-Native cli 的 React-Native 应用程序设置
  • 我正在尝试向我的应用程序后端发出网络请求
    • 说,stage.foo.com/graphql
  • 我启动 Android 模拟器并启动开发服务器:
react-native run-android
Run Code Online (Sandbox Code Playgroud)
  • 这将启动我的 Metro-bundler 开发服务器localhost:8081

问题

  • 由于公司foo拥有出色的基础设施和安全性,他们设置了 CORS 来阻止来自localhost.
  • local.foo.com然而,他们还为这种情况 设置了一个公共环回域。
    • local.foo.com重定向回localhost
  • 如果我访问local.foo.com/graphql,它指向我想要的端点
  • 当我访问local.foo.com:8081/debugger-ui(远程调试 URL)时,它正确连接到在那里运行的 Metro Bundler 服务。

剩下的一块:

所以在这一切之后,这是我的问题:

  • 我的反应本机设置配置为加载应用程序locahost:8081
  • 有没有办法编辑设置来加载应用程序local.foo.com:8081

注意:这不是应用程序代码的问题,我需要某种方法来更改应用程序在查找 Metro Bundler 服务时所点击的源。

android react-native metro-bundler

9
推荐指数
1
解决办法
9734
查看次数

react-native开始给出无效的正则表达式无效的错误

我按照以下链接开始使用react-native

React Native入门

我试图创建没有expo的本机应用程序,所以按照文档,我遵循以下命令

npm install -g react-native-cli
react-native init AwesomeProject
Run Code Online (Sandbox Code Playgroud)

运行android命令后

react-native run-android
Run Code Online (Sandbox Code Playgroud)

它给我以下模拟器错误

在此处输入图片说明

所以我用启动命令来运行Metro服务器

react-native start
Run Code Online (Sandbox Code Playgroud)

这个命令给了我控制台另一个错误

在此处输入图片说明

reactjs react-native react-native-android react-native-cli metro-bundler

9
推荐指数
2
解决办法
3555
查看次数

React Native TypeScript:无法解析模块(但它存在)

我有一个带有 TypeScript 的全新 React Native 0.61.1 项目。它曾经完美地显示了新项目的欢迎屏幕。我添加了一个类,试图导入它(它甚至自动完成),但它说找不到该组件。

这是我的tsconfig.json(所有代码都在我的src文件夹中,该文件夹位于我的项目根目录中):

{
    "compilerOptions": {
      // Target latest version of ECMAScript.
      "target": "esnext",
      // Search under node_modules for non-relative imports.
      "moduleResolution": "node",
      // Process & infer types from .js files.
      "allowJs": true,
      // Don't emit; allow Babel to transform files.
      "noEmit": true,
      // Enable strictest settings like strictNullChecks & noImplicitAny.
      "strict": true,
      // Disallow features that require cross-file information for emit.
      "isolatedModules": true,
      // Import non-ES modules as default imports. …
Run Code Online (Sandbox Code Playgroud)

javascript node-modules typescript react-native metro-bundler

9
推荐指数
1
解决办法
5480
查看次数

expo sdk 40 Metro.config.js“预期‘fromDir’为‘字符串’,得到‘未定义’”

I\xe2\x80\x99m 在带有纱线工作区的 monorepo 上,并且 I\xe2\x80\x99m 也使用react-native-svg-transformer。\n我已将 sdk 更新到 sdk 40,并且在 Metro 中出现此错误。配置.js :\n在此输入图像描述

\n

这是我的 Metro.config.js :

\n
const { createMetroConfiguration } = require(\'expo-yarn-workspaces\');\nconst { getDefaultConfig } = require(\'@expo/metro-config\');\nconst configuration = createMetroConfiguration(__dirname);\nmodule.exports = (async () => {\n  const {\n    resolver: { sourceExts },\n  } = await getDefaultConfig();\n  return {\n    transformer: {\n      babelTransformerPath: require.resolve(\'react-native-svg-transformer\'),\n    },\n    resolver: {\n      ...configuration.resolver,\n      assetExts: configuration.resolver.assetExts.filter(ext => ext !== \'svg\'),\n      sourceExts: [...sourceExts, \'svg\'],\n      // NOTE: using native entrypoint because bug in metro https://github.com/facebook/metro/issues/485\n      resolverMainFields: [\'native\', \'module\', \'browser\', …
Run Code Online (Sandbox Code Playgroud)

javascript react-native expo metro-bundler

9
推荐指数
1
解决办法
3970
查看次数