前提
Next.js で静的なポートフォリオサイトを作っています。
実現したいこと
yarn run build を通し、vercel デプロイをおこないたい。
発生している問題・エラーメッセージ
./pages/_app.tsx 5:48 Error: Parsing error: Unexpected token :
該当のソースコード
javascript
1// /pages/_app.tsx 2import "../styles/globals.scss"; 3import { AnimatePresence } from "framer-motion"; 4import { AppProps } from "next/app"; 5 6function MyApp({ Component, pageProps, router }: AppProps) { 7 return ( 8 <AnimatePresence exitBeforeEnter onExitComplete={() => window.scrollTo(0, 0)}> 9 <Component key={router.asPath} {...pageProps} /> 10 </AnimatePresence> 11 ); 12}; 13 14export default MyApp;
試したこと
AppProps を使わない形にしてみましたが
javascript
1import "../styles/globals.scss"; 2import { AnimatePresence } from "framer-motion"; 3 4function MyApp({ Component, pageProps, router }) { 5 return ( 6 <AnimatePresence exitBeforeEnter onExitComplete={() => window.scrollTo(0, 0)}> 7 <Component key={router.asPath} {...pageProps} /> 8 </AnimatePresence> 9 ); 10} 11 12export default MyApp;
Type error: Binding element 'Component' implicitly has an 'any' type.
のエラーが発生。
Component, pageProps, router それぞれで型指定をしていけば解決する...??
javascript
1import "../styles/globals.scss"; 2import { AnimatePresence } from "framer-motion"; 3 4function MyApp({ Component, pageProps, router }: {Component: any, pageProps: any, router: any} ) { 5 return ( 6 <AnimatePresence exitBeforeEnter onExitComplete={() => window.scrollTo(0, 0)}> 7 <Component key={router.asPath} {...pageProps} /> 8 </AnimatePresence> 9 ); 10} 11 12export default MyApp;
試しに AppProps を使用せず、それぞれ型指定をする方式にしてみると結局
4:48 Error: Parsing error: Unexpected token :
が発生するので AppProps の問題ではなく記法の問題のようでした。
typescript を入れているのですが jsx として ESLint に見られているとか...??
補足情報(FW/ツールのバージョンなど)
yarn run dev は普通に動き、動作は問題ないです。