✔️
JavaScriptをTypeScriptに変更してVerselのデプロイに反映したよ
作成日:
2022/03/21
2
Create a Next.js Appの続きです。
- [TypeScriptのインストール]
- [.js ⇒ .tsxに変換]
- [ESLintも導入してみた]
TypeScriptのインストール
-
ディレクトリ内でtscofig.jsonを作成
touch tsconfig.json
リスタート
npm run dev
-
TypeScriptをインストール(npmにしました。yarnでも可)
% npm install --save-dev typescript @types/react @types/node
added 8 packages, removed 9 packages, changed 4 packages, and audited 178 packages in 24s 73 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
変更になるところ
- Static Generation(静的サイト生成) と Server-side Rendering(サーバーサイドレンダリング)
-
getStaticProps⇒
GetStaticProps
-
getStaticPaths⇒
GetStaticPaths
-
getServerSideProps⇒
GetServerSideProps
-
Appのカスタマイズ
pages/_app.js
をpages/_app.tsx
に変換し、built-in type(プリミティブ型)AppProps
を使用
.js
⇒.tsx
に変換
以下のファイルを全部.tsx
に書き換え
- date.js
- layout.js
- posts.js
- [id].js
- index.js
- _app.js
- hello.js
commitはこんな感じ。
next-env.d.ts
は自動的に生成されるようです。
再起動します
% npm run dev
> dev
> next
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
We detected TypeScript in your project and created a tsconfig.json file for you.
We detected TypeScript in your project and created a tsconfig.json file for you.
は
tsconfig.jsonがないから作ったよ、みたいな感じでした(最初に作ったつもり)でしたがタイポミスってた)
Vercelで引っかかる
hello.tsxのディレクトリを間違えていた( ✕:posts/、○:posts/api )ので、変更して再度コミット・プッシュ
Mergeできました!
ESLintも導入してみた
-
package.jsonを編集
{ "private": true, "scripts": { "dev": "next", "build": "next build", "start": "next start", "lint": "next lint" }, 中略 }
-
yarnでインストール
% yarn lint yarn run v1.22.15 $ next lint ? How would you like to configure ESLint? ❯ Base configuration + Core Web Vitals rule-set (recommended) Base configuration None
recommendedでEnterキー押すとインストール開始
Installing devDependencies: - eslint - eslint-config-next We created the .eslintrc.json file for you and included your selected configuration. ready - ESLint has successfully been configured. Run next lint again to view warnings and errors. ✨ Done in 124.64s.
-
再びエラー
I’mの‘
がエスケープ使わないといけないようで、今回は応急処置としてI am
にしておくついでに警告で出ているpackage-lock.jsonも必要ないので削除。
Merge成功!やはりESlint入れたほうが型チェック入るのでよさげ
2021年からプログラミング学習を開始し、未経験から受託開発企業に転職。2022年前半を目標に転職活動中です。
JavaScriptとjQueryはPFで使用経験あり。最近始めたReactを使用してアプリを作成したいと考えております。
#ENJIN