Closed5

React Native (Expo)でエントリーポイントを変更する

lemonadernlemonadern
yarn create expo-app -t expo-template-blank-typescript

で生成したプロジェクト

ルートディレクトリにApp.tsxがあるので、それをsrc/に入れたい

lemonadernlemonadern
mv App.tsx src/

するだけでは動かなかった
エントリーポイントの設定がどこかにあるはず

lemonadernlemonadern

package.json の設定で発見

package.json
  "main": "node_modules/expo/AppEntry.js",

トランスパイルされた後のJavaScriptファイルを呼んでいるらしい

node_modules/expo/AppEntry.js
import registerRootComponent from 'expo/build/launch/registerRootComponent';

import App from '../../App';

registerRootComponent(App);
lemonadernlemonadern

どういう流れでトランスパイルと呼び出しが行われているのかわからないから動くかは定かではないが、registerRootComponentをApp.tsx側で呼んで package.jsonにApp.tsxを直接指定できるならば、エントリーポイントをこちら側で制御できそう

それはそれとして、package.jsonのmainにnode_modules配下のファイルがあるの嫌じゃないのかな?

https://reactnative.dev/docs/appregistry

lemonadernlemonadern

やってみる

App.tsx
import registerRootComponent from 'expo/build/launch/registerRootComponent';
// ...
registerRootComponent(App);
package.json
 "main": "App.tsx",

これで動いた
ということで無事src配下にまとめられそう

このスクラップは2024/03/29にクローズされました