Gewusst wie: hinzufügen sourcemap in Reagieren Nativen für die Produktion?
Erhielt ich Fehler melden, wie die folgenden, während die app abgestürzt:
Schwerer Ausnahmefehler: com.facebook.reagieren.Module.core.JavascriptException:
onSelect-index.android.bundle:20:7148 onPress
index.android.bundle:20:2435
Aber es ist nicht wirklich hilfreich für mich, um Probleme zu Schießen. Wie könnte ich Sie aktivieren-source-Karte, so dass ich verfolgen konnte, wo das Problem ist ?
UPDATE 2018
https://docs.expo.io/versions/latest/guides/using-sentry.html Sieht vielversprechend aus !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die source-mapping-hier ist die Art, wie ich über gehen es:
In meinem bundle-Befehls für meine Produktion bauen ich sagen, dass es zu generieren, die eine Quelle Karte:
iOS:
Android - ich musste tatsächlich ändern Sie das android/app/reagieren.gradle-Datei zu get source maps generieren auf release kompiliert. Möglicherweise gibt es einen einfacheren Weg, aber im Grunde, finden Sie, wo es baut sich der bundle-Befehl in der bundleReleaseJsAndAssets-Methode, und fügen Sie die Quell-map-bit zu:
Den Ausgabe-Pfad ein wenig seltsam aussieht, aber das bringt es auf Ihrer obersten Ebene (gleiche Stelle wie iOS. Ich wollte es so. Sie können offensichtlich es überall).
Dann, wenn Sie einen Fehler mit der Zeile Zahl, die nichts bedeutet, Sie führen Sie es durch die "source-Karte" NPM-Paket. Man könnte wahrscheinlich sehr aufwändig mit Ihrem Ansatz, aber ich ging einfach mit:
Wobei Zeile und Spalte ersetzt werden soll mit Zeile und Spalte die Zahl aus deinem Beispiel-Ausgabe vor.
Diese offensichtlich funktioniert am besten, wenn Sie die source-Karten gespeichert, wie in der Zeile und Spalte die zahlen ändern sich von build zu bauen, wie Sie Ihre code-änderungen. Es sollte ziemlich nah, aber wenn Sie können, verwenden Sie die source-control-setup-Auswahl zurück zu gehen, zu Begehen, dass wurde verwendet, um die app in Frage-und re-generieren, die das bundle mit der zusätzlichen bits, um die der Befehl zum generieren der Quelle gekennzeichnet.
commandLine "node", "node_modules/react-native/local-cli/cli.js", "bundle", "--platform", "android", "--dev", "${devEnabled}", "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir, "--sourcemap-output", "${bundleAssetName}.map"
Auch, müssen Sie die Verwendung von lokalen reagieren.gradle. Ausgabe: github.com/facebook/react-native/issues/7393project.ext.react = [ extraPackagerArgs: [ "--sourcemap-output", file("$buildDir/../../sourcemaps/sourcemap.js")] ]
zuandroid/app/build.gradle
kurz vor derapply from:
Linie.extraPackagerArgs: ["--sourcemap-output", file("$buildDir/../../sourcemaps/sourcemap-${android.defaultConfig.versionName}.js")]
und verschieben derproject.ext.react
definition und dieapply from: "../../node_modules/react-native/react.gradle"
Linie nach derandroid {...}
definition.Android inspiriert von @chetstone Antwort
Ab v0.32 für android können Sie Ihr android/app/build.gradle, dies zu erreichen.
Suchen Sie nach der Zeile
apply from: "../../node_modules/react-native/react.gradle"
Genau über dieses, Sie sehen etwas wie:
Ändern Sie entsprechend die folgenden
Auf iOS
Gehen, um Ihre build-Phasen in Xcode für das "Bundle Reagieren Nativen code und Bilder" - phase und hinzufügen:
FAILURE: Build failed with an exception. * What went wrong: Failed to capture fingerprint of input files for task ':cntral:bundleReleaseJsAndAssets' property '$1' during up-to-date check. > Failed to create MD5 hash for file '/Users/me/tmp/skylight-87084.sock' as it does not exist.
react-native
für Sie da ich kann nicht scheinen, um herauszufinden jemand anderes mit dem Thema: github.com/facebook/react-native/issues/24044Wie bereits erwähnt, gibt es keine offensichtliche Möglichkeit, zu generieren, die
sourcemap
Datei Reagieren Native auf iOS. Diebundle
Befehl aufgerufen wird, ausreact-native-xcode.sh
, und es gibt keine Bestimmung, hinzufügen von Parametern zu derbundle
Befehlszeile. Aber ich fand eine saubere Art und Weise, es zu tun.react-native-xcode.sh
verwendet die UmgebungsvariableBUNDLE_CONFIG
angeben einer config-Datei. Wenn Sie erstellen eine leere config Datei, es hat keine Wirkung, und dann Sie können hinzufügen zusätzlicher CLI-Parameter.Erstellen Sie eine leere config Datei.
touch null_config
Set
BUNDLE_CONFIG
mit deiner config-Datei, und piggyback die--sourcemap-output
parameter.export BUNDLE_CONFIG="null_config --sourcemap-output ./sourcemap.js.map"
Beim erstellen der Datei
sourcemap.js.map
erstellt werden.