2
votes

Index.android.bundle est-il nécessaire pour la version Android?

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?


0 commentaires

3 Réponses :


2
votes

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.


3 commentaires

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.



3
votes

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".


3 commentaires

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



0
votes

À 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.


0 commentaires