Lors de la version de build, j'exécute toujours bundle react-native --platform android --dev false --entry-file index.js --bundle-output android / app / src / main / assets / index.android .bundle
et sentez que l'application fonctionne correctement.
Est-ce correct?
3 Réponses :
Oui, c'est correct.
bundle react-native --platform android --dev false --minify true --entry-file index.js --bundle-output android / app / src / main / assets / index.android.bundle --assets -dest android / app / src / main / res
--minify true aidera votre application à fonctionner correctement.
Pouvez-vous expliquer en détail?
prenons un exemple comme s'il y a un nom de variable "reactNative" dans votre application et utilisé dans de nombreux composants avec le même nom. Maintenant --minify true réduit votre code comme votre nom de variable "reactNative" en a et le remplace partout. Par cela, votre code va se réduire, prendre moins de mémoire en bourgeonnement et réduire la taille de votre application.
@ParasKorat lorsque --dev est faux, il indique automatiquement --minify true donc ce n'est pas nécessaire.
Oui, vous avez raison, cette commande doit être exécutée à chaque fois avant chaque version de version.
Si vous ne voulez pas la taper à chaque fois que vous voulez publier une version, vous pouvez écrire les lignes suivantes dans le
code> scripts faisant partie de package.json
:
{ "name": "Widget", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest", "android-linux": "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 && react-native run-android" }, "dependencies": { "react": "^16.6.3", "react-native": "^0.58.5" }, "devDependencies": { "babel-core": "^7.0.0-bridge.0", "babel-jest": "24.1.0", "jest": "24.1.0", "metro-react-native-babel-preset": "0.52.0", "react-test-renderer": "16.6.3" }, "jest": { "preset": "react-native" } }
Par exemple, j'ai utilisé dans mon package.json code > fichier comme celui-ci:
"android-linux": "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 && react-native run-android".
Pouvez-vous expliquer la raison?
Eh bien, il est donné dans la doc officielle facebook.github.io/react-native/docs/… dont vous avez besoin pour exécuter la commande pour créer un bundle React Native, qui sera inclus avec votre application Android native.
je ne connais pas la raison exacte
À partir d'aujourd'hui (au moins pour react native> = 0.62), vous N'AVEZ PAS BESOIN d'exécuter manuellement bundle react-native
.
Lorsque vous utilisez ./gradlew assembleRelease
, cela le fera déjà avant de terminer la construction comme indiqué dans le journal: Task: app: bundleReleaseJsAndAssets
.
J'ai également confirmé que moi-même et le bundle ne sont pas écrits dans le document officiel RN ici < / a>.
Pour aller plus loin, index.android.bundle
n'est utilisé que si vous souhaitez installer l'application via Android Studio sans que le bundler de métro ne fonctionne.