【React Native】ReactNavigatorをインストール後、シミュレーターが起動しない

# 環境

- Macbook Air 2020
- react 18.0.0
- react-native 0.69.4
- expo 46.0.6
- React Native Debugger 0.13.0

# １．状況

React Navigatorをインストール後、下記ファイルを編集し `expo start -c` を実行したが、シミュレーターが起動せずエラーが発生。

```jsx:App.js
import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import HomeScreen from "./screens/HomeScreen";

const Stack = createStackNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
```

```jsx:HomeScreen.js
import React, { useEffect, useState } from "react";
import { StyleSheet, View, FlatList, SafeAreaView } from "react-native";
import ListItem from "../conponents/ListItem";
import Constants from "expo-constants";
import axios from "axios";

const URL = `https://newsapi.org/v2/top-headlines?country=jp&category=business&apiKey=${Constants.manifest.extra.newsApiKey}`;

export default function HomeScreen() {
  const [articles, setArticles] = useState([]);

  useEffect(() => {
    getNewsData();
  }, []);

  const getNewsData = async () => {
    try {
      const response = await axios.get(URL);
      setArticles(response.data.articles);
    } catch (error) {
      console.log(error);
    }
  };

  return (
    <SafeAreaView style={styles.safeAreaView}>
      <View style={styles.container}>
        <FlatList
          data={articles}
          renderItem={({ item }) => (
            <ListItem
              author={item.author}
              image={item.urlToImage}
              title={item.title}
            />
          )}
        />
      </View>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  safeAreaView: {
    flex: 1,
    backgroundColor: "#1e90ff",
  },
  container: {
    flex: 1,
    backgroundColor: "#fff",
    justifyContent: "center",
  },
});
```

# ２．エラー内容

```bash
React Native error: Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from
```

- **日本語訳**
React Native エラー: エクスポートの名前空間は、最初に `@babel/plugin-proposal-export-namespace-from で変換する必要があります

# ３．調査

以下のワードでググる

- Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from

# **４．原因**

- Reanimated 2.9.0 以降は`'react-native-reanimated/plugin'` というBabelプラグインをplugins配列に追加する必要があった

# **５．解決策**

- `react-native-reanimated` をインストール

```bash
npm install react-native-reanimated
```

- `babel.config.js` ファイルを編集

```jsx:babel.config.js
module.exports = function (api) {
  api.cache(true);
  return {
    presets: ["babel-preset-expo"],
    plugins: ["react-native-reanimated/plugin"], //追加
  };
};
```

- `expo start -c` を実行するも解消されず
- `node_modules` フォルダを削除し、 `npm install` で再インストール
- React Native Debuggerを再インストール

```bash
//アンインストール
brew uninstall --cask react-native-debugger

//再インストール
brew reinstall --cask react-native-debugger
```

- シミュレーターが表示された

# **６．参考資料**

- [React Native error: Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from](https://stackoverflow.com/questions/73046330/react-native-error-export-namespace-should-be-first-transformed-by-babel-plug)
- [[Solved] エクスポート名前空間は、最初に@ babel/plugin-proposal-export-namespace-fromによって変換される必要があります](https://ezerror.com/ja/solved-%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93%E3%81%AF%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AB-babel-plugin-proposal-export-namespace-from%E3%81%AB)
- [Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from` #3364](https://github.com/software-mansion/react-native-reanimated/issues/3364)
- [Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from` on `export * as default from './Animated';` 
#3410](https://github.com/software-mansion/react-native-reanimated/issues/3410)
- [初めてのHomebrew Cask (+主要コマンド一覧表)](https://qiita.com/chocomint_t/items/fa4ef7c9169eaef7e0f6#%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEhomebrew-cask)