Next.js フロントエンド の ソースを実行するまでの手順

Windowsモニター画面内部でnext.jsをコード実行しブラウザで表示してブレークポイント指定

Next.js をインストールする

next, react, react-dom がインストールされていない場合下記を実行

npm install next react react-dom

これにより、next コマンドが使えるようになります。

再度開発サーバを起動

とにかく実行してみる フロントエンドのソースのあるディレクトに移動後下記コマンド

npm run dev

エラーが出ると思うのでpackage.jsonを確認する

scripts の中に正しく dev が定義されているか確認

"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start"
}

node_modules がない場合

依存関係が未インストールの場合も同じエラーが出ます。以下で依存関係を一括インストール

npm install

グローバルに next を使いたい場合(推奨はしない)

グローバルインストールも可能

npm install -g next

AWS Cognitoを認証プロバイダーを使っている場合

多くのフロントエンドは、AWS Cognitoを認証プロバイダーとして使っている可能性がある

  • UserPoolId
  • ClientId

上記の 両方の環境変数(もしくは設定値)をどこかに設定する必要がある。

Error: Both UserPoolId and ClientId are required.

上記は、NextAuth の初期化が失敗しているというエラーです。

.env ファイルに環境変数を設定

プロジェクトのルートにある .env.local または .env ファイルを確認・編集して、以下のような環境変数を追加

AWS_COGNITO_USER_POOL_ID=your_user_pool_id
AWS_COGNITO_CLIENT_ID=your_cognito_client_id
AWS_COGNITO_REGION=your_aws_region

.env.local を更新したら、Next.js 開発サーバを再起動

npm run dev

上記の必要な3つの情報とその取得

COGNITO_CLIENT_ID の探し方(=アプリクライアントID)

これは AWS Cognito の中にある「アプリケーションクライアント」のIDです。

▶ 取得手順:

  1. AWSマネジメントコンソールにログイン
  2. Cognito を開く
  3. 「ユーザープール」→ あなたのプール(例:ap-northeast-1_xxxxxx)を選択
  4. 左メニュー「アプリケーション」→「アプリケーションクライアント」
  5. 一覧に表示される「クライアントID」が COGNITO_CLIENT_ID

COGNITO_REGION の探し方

これはユーザープールIDの先頭にあるリージョン名と同じです。

下記のコード部分を探して確認

const userPool = new CognitoUserPool({
  UserPoolId: process.env.AWS_COGNITO_USER_POOL_ID,
  ClientId: process.env.AWS_COGNITO_CLIENT_ID,
});

HTTP 401 = 「認証失敗(Unauthorized)」

POST /api/auth/callback/credentials 401 のエラーは、NextAuth の “credentials” プロバイダでのログインが失敗したことを示しています。
これは「ユーザー名またはパスワードが正しくない」または「認証ロジックに問題がある」場合です。

401 の意味

  • HTTP 401 = 「認証失敗(Unauthorized)」
  • /api/auth/callback/credentials は NextAuth の内部APIで、ログイン時に叩かれます
  • つまり「ログインの試行はされたが、認証できなかった」

ユーザー名 or パスワードが間違っている

Cognito 側のユーザー情報と、ログイン画面で入力した情報が一致していない可能性。

対処:

  • 正しいユーザー名・パスワードか確認
  • Cognito コンソールで対象ユーザーの存在を確認
  • ユーザーが有効化されているか(メール確認済など)

認証ロジックのコードに問題がある

おそらく NextAuthauthorize() 関数内で認証処理を行っているはず。
ここで return null すると、NextAuth は「ログイン失敗」とみなして 401 を返します。

Cognito との接続エラー

Cognito SDK を使って AuthenticationDetailsCognitoUser.authenticateUser() を使っている場合に、エラーがうまく処理されず null 返していると、401 になります。

Cognito 管理画面からパスワードをリセットする手順

CLIから強制的にパスワードを変更

aws cognito-idp admin-set-user-password \
--user-pool-id ap-northeast-1_XXXXXXX \
--username example@example.com \
--password NewPassword123! \
--region ap-northeast-1 \
--permanent

Cognito 側の「ユーザーのステータス」が「確認済み」で「有効」になっていれば、NextAuth 側でログインできるようです。

Cognito 管理者が新しいパスワードを「即時設定」

AWS の CLI(コマンドライン) を使えば、ユーザーに代わって新しいパスワードをその場で設定できます。


▶ 必要条件

  • AWS CLI をインストール済み(公式サイト
  • CLI に aws configure でアクセスキー等を設定済み
aws cognito-idp admin-set-user-password \
--user-pool-id ap-northeast-1_あなたのユーザープールID \
--username ユーザー名またはメールアドレス \
--password 新しいパスワード \
--permanent

これでパスワードが更新され、「強制変更状態」が解除されます。
その後、Next.js/NextAuth 側でログインできるようになるはず

✅ Chrome を起動して Next.js をデバッグ

VS Code でブラウザ(Chrome)を自動起動させるには、pwa-chrome タイプの構成が必要です。

🔧 修正例:Node.js + Chrome の構成(2つ入れる)

{
  "version": "0.2.0",
  "configurations": [
    {
      // Next.js dev server を起動(ブラウザは起動しない)
      "type": "pwa-node",
      "request": "launch",
      "name": "Next.js Dev Server",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "cwd": "${workspaceFolder}",
      "console": "integratedTerminal"
    },
    {
      // Chrome を起動して http://localhost:3000 に接続
      "type": "pwa-chrome",
      "request": "launch",
      "name": "Open Chrome to http://localhost:3000",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}"
    }
  ]
}

✅ 手順

  1. 上記のように launch.json に 2 つの設定を入れる。
  2. サイドバーの「実行とデバッグ(Ctrl+Shift+D)」で、
    • Next.js Dev Server を実行 → サーバー起動
    • Open Chrome to http://localhost:3000 を実行 → Chrome 起動

以下のような launch.json を使って、VS Code から Next.js を起動

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Debug Next.js App",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "cwd": "${workspaceFolder}",
      "env": {
        "NODE_OPTIONS": "--inspect"
      },
      "skipFiles": ["/**"],
      "console": "integratedTerminal"
    }
  ]
}

🔧 手順

  1. 上記の launch.json.vscode/launch.json に保存
  2. VS Code 左メニューの「▶ 実行とデバッグ」から Debug Next.js App を選択して起動
  3. src/app/** などのソースファイルでブレークポイントを打つ(F9)
  4. 対象のページにアクセスして、ブレークがかかるか確認

WebMとは?特徴・再生アプリ・変換方法

WebMとは?特徴・歴史・再生アプリ・変換方法

Webサイトに動画を埋め込むとき、「WebM形式」という拡張子を見たことがある方も多いのではないでしょうか?
この記事では、WebMとは何か?その特徴・歴史・再生方法・編集対応アプリ・変換方法までを詳しく解説します。


✅ WebMとは?基本情報

WebM(ウェブエム)は、Googleが開発したオープンソースの動画ファイル形式です。拡張子は「.webm」で、HTML5に最適化された動画フォーマットとして知られています。

項目内容
拡張子.webm
映像コーデックVP8 / VP9 / AV1
音声コーデックVorbis / Opus
主な用途ウェブブラウザでの動画配信(HTML5 video)
特徴軽量、高圧縮、オープン仕様、著作権フリー

この形式は、特に軽量なストリーミングや透過動画(アルファチャンネル付き)を必要とする用途で重宝されています。


🕰 WebMの歴史と進化

◾ 2010年:GoogleによってWebM発表

WebMは、2010年にGoogleが「オープンでロイヤリティフリーな動画フォーマット」として発表しました。目的は、当時主流だったFlash形式に代わるHTML5対応の動画規格を普及させることでした。

Googleは、2009年に買収したOn2 Technologies社のVP8コーデックをベースにWebMを開発。これにより、Web上で動画を高速・軽量に再生できるようになりました。

◾ その後の進化:VP9・AV1の登場

  • VP9(2013年):VP8の後継で、高画質・高圧縮に対応。YouTubeもVP9形式で配信しています。
  • AV1(2018年〜):次世代の超高圧縮規格。NetflixやAmazon Prime Videoも採用??という噂。

🌐 WebMに対応しているアプリ・再生環境

🎥 再生できるメディアプレイヤー

WebMファイルは以下のような無料・高性能プレイヤーで再生可能です:

  • VLC media player(Win/Mac/Linux):オープンソースの万能再生ソフト
  • MPV:軽量で高画質、コマンドライン操作も可能
  • PotPlayer(Windows):細かい設定が可能な高機能プレイヤー
  • Windows 10/11 標準アプリ:VP9コーデックが入っていれば再生可能

Macの「QuickTime」はデフォルトでは非対応ですが、変換ツールを使えば再生できます。

🌍 Webブラウザでの再生

WebMは主にWeb用に最適化された形式であり、以下のブラウザでネイティブサポートされています:

ブラウザ対応状況
Google Chrome✅ 完全対応
Mozilla Firefox✅ 完全対応
Microsoft Edge✅ 完全対応
Opera✅ 完全対応
Safari(Mac/iOS)⚠ 部分的(AV1のみ対応)

つまり、Google ChromeやFirefoxを使えば追加のプラグインなしでWebM動画を再生可能です。


✂ WebM対応の編集・変換アプリ

🛠 動画編集ソフト

以下の編集ソフトで、WebMファイルの読み込みや出力が可能です:

ソフト名対応内容
ShotcutWebMの読み書き対応。無料で使える本格派編集ソフト
DaVinci Resolve入力対応。出力には別形式が必要
Adobe Premiere Pro / After Effects入力可能だが、出力には外部エンコードが必要

🔄 WebM ⇄ MP4変換方法

動画形式を変換したい場合は、以下のようなツールを使いましょう:

FFmpeg(高機能な無料コマンドラインツール)

bashコピーする編集するffmpeg -i input.webm output.mp4

このように、コマンド一行で簡単にWebMからMP4に変換可能です。


🎯 WebMとMP4の違い

特徴WebMMP4
ライセンスオープン&無料特許あり(H.264など)
圧縮効率高(VP9/AV1)中(H.264)
アルファ透過一部対応非対応(基本)
ブラウザ互換性Chrome/Firefox向けSafari/iPhoneなどで優秀
編集互換性限定的高い(ほとんどのソフト対応)

WebMはWeb向け、MP4は汎用向けと考えるとわかりやすいです。

linux / macOS grep サブディレクトリ テキストファイルの文字列を探す

macOS grep 画面

macOSやLinuxで複数あるテキストファイルの中の特定の文字列を検索する場合、ターミナルアプリのgrepコマンドを使えば簡単に検索が可能です。下のような2つのフォルダ内にそれぞれCSVファイルが入っています。CSVファイルはテキストファイルなのでgrepで検索できます。

複数フォルダにまたがったCSVファイル
複数フォルダにまたがったCSVファイル

grepコマンドで -rのオプションをつけて実行します。grep -r [検索したい文字] [パス]です。

grep -r ワイン ./

上記コマンドを実行すると下のようにフォルダ名含めた結果が表示されます。

grep コマンド実行結果
grep -r コマンド実行結果

より正確に(色付き・行番号などオプション付き)

下記の例は、ログファイル内からIPアドレスを検索しています。

grep -rn --color=auto "52.xx.xx.xxx" .

-n: 該当行の行番号を表示。

--color=auto: 一致部分を色付きで表示。

find と grepを使っても同じような結果が得られます。下記はfind grepコマンドです。

find ./ -type f | xargs grep ワイン  
find [フォルダ名] -type f | xargs grep [検索文字列]
find [フォルダ名] -type f | xargs grep [検索文字列]

拡張子などを限定したい場合(例:.log ファイルのみ)

下記の場合もLOGファイルからIPアドレス検索する例です

find . -type f -name "*.log" -exec grep -Hn --color=auto "52.xxx.xx.xxx" {} +

find.log ファイルだけを対象にし、grep に渡しています。


macOSの.weblocファイルとは?作り方・使い方!

MacのFileVaultとは?設定方法と企業向けセキュリティ対策をわかりやすく解説