Skip to content

expo webではなく、nextjsを使う

📅 December 26, 2022

⏱️1 min read

こんちは。

expo for webでnextjsが使えるらしい。とのことだったので、サクッと試そうと思ったのですが、盛大にハマったので、備忘録。

nextjsの導入

詳しくはこちらなのですが、npm7以降でpeerDependencies の扱い方が変わったらしいので、色々とエラーが出る。 --legacy-peer-deps をつけるとnpm6と同様にインストールしてくれるらしい。

公式ドキュメントの通りやるとエラーになるので、以下のようにやると進んだ。

npm i --save-dev @expo/next-adapter --legacy-peer-deps
npm i --legacy-peer-deps
yarn next-expo

localhost:3000で見れない

あとは、nextjsを起動したら、ブラウザなのにreact nativeがいい感じに表示されめでたしめでたしのはずが、見れない・・・

色々ググると next.config.js を以下に修正するといいとのことなので、修正したらうまくいった。

const { withExpo } = require("@expo/next-adapter");
const withPlugins = require("next-compose-plugins");

const withTM = require("next-transpile-modules")(["react-native-web"]);

module.exports = withPlugins(
  [withTM, [withExpo, { projectRoot: __dirname }]],
  {}
);

何も理解してない・・・。

Next →
  • @masayuki031