Точки останова Vscode в файлах TypeScript, которых нет в React Native - PullRequest
5 голосов
/ 05 октября 2019

У меня есть проект React Native 0.61, TypeScript 3.6.2 и Vscode 1.38.1.

Вот моя конфигурация запуска:

{
    "name": "Debug iOS",
    "cwd": "${workspaceFolder}",
    "type": "reactnative",
    "request": "launch",
    "platform": "ios"  
},

tsconfig.json:

  {
    "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.
      "esModuleInterop": true,
      "baseUrl": "./src",
      "jsx": "react-native",
    }
  }

babel.config.js:

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
};

Я начинаю отладку в Vscode, я вижу следующие результаты:

Starting debugger app worker.
Established a connection with the Proxy (Packager) to the React Native application
Debugger worker loaded runtime on port 4021

Однако, мои точки останова не будут поражены. Они остаются пустыми, серыми, "непроверенными точками останова" в Vscode, когда я начинаю отладку. Если я вставлю какое-либо выражение debugger в сам код, оно попадет в сгенерированный / переданный .bundle файл:

enter image description here

enter image description here

Вот несколько вещей, которые я пробовал (ни одна из них не работает):

  • Добавлено "sourceMaps": true, в мою конфигурацию запуска
  • Добавлен "outDir": "${workspaceRoot}/.vscode/.react" в мою конфигурацию запуска (я пробовал его, хотя он говорит: "Свойство outDir не разрешено"
  • Добавлено "sourceMap": true в мой tsconfig
  • Добавлено "outDir": "build"к моему tsconfig
  • добавлен "module": "commonjs" к моему tsconfig
  • добавлен "inlineSourceMap": true к моему tsconfig

Очевидно, я пробовал их один за другим, добавивпо одному, а не сразу. Я также закрыл Vscode, удалил все файлы кэша Metro (карта модулей ускорения и т. д.) и заново открывал Vscode на каждом шаге.

Я прочитал, возможно, связанные вопросы и ответыat:

Кроме того, вотвывод из моего react-native info, если это поможет:

System:
    OS: macOS 10.15
    CPU: (8) x64 Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz
    Memory: 3.69 GB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.10.0 - /usr/local/bin/node
    Yarn: 1.19.0 - /usr/local/bin/yarn
    npm: 6.11.3 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.1, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
    Android SDK:
      Android NDK: 17.2.4988734
  IDEs:
    Android Studio: 3.4 AI-183.6156.11.34.5522156
    Xcode: 11.1/11A1027 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0 
    react-native: ^0.61.1 => 0.61.1 
  npmGlobalPackages:
    react-native-cli: 2.0.1
    react-native-gesture-handler: 1.0.16

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...