Установите пользовательский файл записи для сервера Metro dev в сборке React Native - PullRequest
0 голосов
/ 20 июня 2020

Я пишу несколько сценариев, которые создают пользовательские сборки React Native для модульного тестирования и тому подобное, указывая собственный файл записи для сценария react-native-xcode.sh с использованием переменной ENTRY_FILE env. Это супер полезно и здорово. Я могу без проблем делать релизные сборки, и они работают нормально, так что я могу создать приложение RN из любого входного файла по своему желанию. Однако, когда я пробую сборку варианта Debug, кажется, что метро не знает о моем специальном файле записи, и выдает мне эту ошибку:

None of these files exist:
  * index(.native|.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)
  * index/index(.native|.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)
    at ModuleResolver.resolveDependency (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:165:15)
    at ResolutionRequest.resolveDependency (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
    at DependencyGraph.resolveDependency (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/node-haste/DependencyGraph.js:285:16)
    at /Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/lib/transformHelpers.js:267:42
    at Server.<anonymous> (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/Server.js:841:41)
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/Server.js:99:24)
    at _next (/Users/justin/dev/enmesh/testutilsnative/node_modules/metro/src/Server.js:119:9)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
IN RESOLVER
Error: Unable to resolve module `./index` from ``: 

Кто-нибудь знает, как я могу получить отладку сборка приложения для правильного взаимодействия с сервером разработки Metro, чтобы я мог лучше отлаживать сборки приложения? Будем очень признательны за любые рекомендации!

Metro просто запускается автоматически процессом xcodebuild, который я называю так:

const args = {
  simulator: device,
  configuration: variant,
  scheme,
  projectPath: xcodeProjectPath,
  device: undefined,
  uuid: undefined,
  packager: true,
  verbose: true,
  port: 8081,
  terminal: undefined,
};

const xcodebuildSpawnOptionsArgs: any = {
  ...args,
  cwd: folder,
  env: {
    PLATFORM: 'ios',
    ENTRY_FILE: builtEntryFilePath,
  },
};

const buildProcess = spawn(
  'xcodebuild',
  xcodebuildArgs,
  getProcessOptions(xcodebuildSpawnOptionsArgs),
);
...