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.