Closed24

Next.jsとmicroCMSでブログを作る

hbsnowhbsnow

APIにユニークかどうかの設定がない。ただいわゆるslugがほしい場合にはcontentIdがあるため、そちらで代用ができる

https://document.microcms.io/manual/automatic-grant-fields

hbsnowhbsnow

ありがとうございます!見落としていました!
タグを作成していてユニークであってほしいフィールドがあったので助かりました

hbsnowhbsnow

タグみたいな関連付けをしたい場合は複数コンテンツ参照からコンテンツを選択するだけなんだけど、このタグをもつ記事を検索みたいなことをしたいときにできなさそうな気がする

hbsnowhbsnow

webhookもフリープランで使えそうなので、自分のblogだとcontentfulを使っているんだけど、それよりはこちらのほうがいいかもなという気持ちになってきた。contentfulは管理画面がちょっと使いにくい(workspaceが消せなくて困っている)
ただ、dev/stg/prodみたいな使い分けがおそらくできなさそうなので、そこが必要だと厳しいのかもしれない

hbsnowhbsnow

APIプレビューがまじで最高という感想しかない(が、プレビュー状態ではなく現在公開しているもののテストらしい。最初勘違いした)

とってきているtagsのいくつかのデータが不要だから除外して取りたい気もする(あってもいいから気にはならないけど)

ただmarkdownのパースがなんか <br /> とかでてきてて厳しい……

hbsnowhbsnow

メディア管理で画像の名前が変えられないっぽいので、微妙な名前を付けてしまうとあとでつらそう

hbsnowhbsnow

APIスキーマからJSON Schemaがダウンロードできるので、そのファイルからTSの型定義を自走生成可能

このへん使うのがよさそう

https://www.npmtrends.com/typescript-json-schema-vs-json-schema-to-typescript

どっちでもいいかな

hbsnowhbsnow

どうなんだろう、とりあえず型を自動生成することには使えなそう

hbsnowhbsnow

インストール
https://nextjs.org/docs/getting-started

❯ yarn create next-app             
yarn create v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...

success Installed "create-next-app@10.0.6" with binaries:
      - create-next-app
✔ What is your project named? … nextjs-micro-cms-blog
Creating a new Next.js app in /Users/...
hbsnowhbsnow

ts対応
https://nextjs.org/docs/basic-features/typescript

❯ touch tsconfig.json && yarn dev
yarn run v1.22.10
$ next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
It looks like you're trying to use TypeScript but do not have the required package(s) installed.

Please install typescript, @types/react, and @types/node by running:

        yarn add --dev typescript @types/react @types/node

If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files in your pages directory).

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn add --dev typescript @types/react @types/node
❯ yarn dev                                          
yarn run v1.22.10
$ next dev
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.
hbsnowhbsnow
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

デフォの設定が上記。targetをes2018に、strictをtrueに変更する

このスクラップは2021/02/22にクローズされました