|
| 1 | +# 第 1 章: Hello, Next.js! |
| 2 | + |
| 3 | +## インストールと環境構築 |
| 4 | + |
| 5 | +node/npm のインストール |
| 6 | + |
| 7 | +[ダウンロード \| Node\.js](https://nodejs.org/ja/download/) |
| 8 | + |
| 9 | +vscode のインストール |
| 10 | + |
| 11 | +[Visual Studio Code – コード エディター \| Microsoft Azure](https://azure.microsoft.com/ja-jp/products/visual-studio-code/) |
| 12 | + |
| 13 | +## next.js プロジェクトの作成 |
| 14 | + |
| 15 | +TODO: Windows での環境構築の説明 |
| 16 | + |
| 17 | +ターミナルアプリを起動するか、 vscode 内で `Terminal > New Terminal` でターミナルを起動してください |
| 18 | + |
| 19 | +``` |
| 20 | +$ mkdir hello-next-app |
| 21 | +$ cd hello-next-app |
| 22 | +$ npm init -y |
| 23 | +
|
| 24 | +# ライブラリのダウンロード |
| 25 | +$ npm install next react react-dom --save |
| 26 | +$ code . # vscode でプロジェクトを開く |
| 27 | +$ code pages/index.js # エディタで開く |
| 28 | +``` |
| 29 | + |
| 30 | +`pages/index.js` を次のように編集してください |
| 31 | + |
| 32 | +```jsx |
| 33 | +export default () => { |
| 34 | + return <h1>Hello, Next</h1>; |
| 35 | +}; |
| 36 | +``` |
| 37 | + |
| 38 | +ここでは、JavaScript の標準仕様に含まれない jsx という文法を使っています。詳しくは後で解説します。一旦は、ただの HTML を JavaScript の中で書くテンプレート記法だと思ってください。 |
| 39 | + |
| 40 | +この時点では、こういうファイル構成になっているはずです。 |
| 41 | + |
| 42 | +``` |
| 43 | +node_modules/ |
| 44 | +pages/ |
| 45 | + index.js |
| 46 | +package-lock.json |
| 47 | +package.json |
| 48 | +``` |
| 49 | + |
| 50 | +## next サーバーの起動 |
| 51 | + |
| 52 | +``` |
| 53 | +$ npx next |
| 54 | +``` |
| 55 | + |
| 56 | +ブラウザを開いて、 `http://localhost:3000/` を入力してください |
| 57 | + |
| 58 | +次の画面が見えたら成功です。 |
| 59 | + |
| 60 | +TODO: 画像を貼る |
| 61 | + |
| 62 | +## 解説 |
| 63 | + |
| 64 | +next.js は `pages/foo.js` というファイルを作成すると、 nqext は `/foo` という URL にそのファイルで `export default` されたコンポーネントを表示します。 |
| 65 | + |
| 66 | +今回作成した `pages/index.js` というファイル名は少し特別扱いされていて、`/index` もしくは `/` に対応します。 |
| 67 | + |
| 68 | +ついでに `/about` という URL のページを作ってみましょう。 |
| 69 | + |
| 70 | +```jsx |
| 71 | +// pages/about.js |
| 72 | +export default () => { |
| 73 | + return ( |
| 74 | + <div> |
| 75 | + <h1>About</h1> |
| 76 | + <p>built by next.js</p> |
| 77 | + </div> |
| 78 | + ); |
| 79 | +}; |
| 80 | +``` |
| 81 | + |
| 82 | +これで、ブラウザで `http://localhost:3000/about` というページにアクセスできるようになります。 |
| 83 | + |
| 84 | +next.js の基本的な規約として `pages/` 以下に置いたファイルの、「ファイル名から拡張子を省いたもの」が、URL に対応します。 |
| 85 | + |
| 86 | +## vercel に公開してみよう |
| 87 | + |
| 88 | +vercel は next.js の開発元が運営しているホスティングサービスです。vercel の提供する CLI ツールを使って、 next.js アプリケーションを vercel に公開してみましょう。 |
| 89 | + |
| 90 | +``` |
| 91 | +$ npm install -g vercel |
| 92 | +
|
| 93 | +$ vercel |
| 94 | +# ユーザー登録/メールアドレス が求められるので入力 |
| 95 | +Vercel CLI 19.0.1 |
| 96 | +? Set up and deploy “~/plg/hello-next”? [Y/n] y |
| 97 | +? Which scope do you want to deploy to? mizchi |
| 98 | +? Link to existing project? [y/N] n |
| 99 | +? What’s your project’s name? next-js-tutorial |
| 100 | +? In which directory is your code located? ./ |
| 101 | +Auto-detected project settings (Next.js): |
| 102 | +- Build Command: `npm run build` or `next build` |
| 103 | +- Output Directory: Next.js default |
| 104 | +- Development Command: next dev --port $PORT |
| 105 | +? Want to override the settings? [y/N] N |
| 106 | +🔗 Linked to mizchi/next-js-tutorial (created .vercel and added it to .gitignore) |
| 107 | +🔍 Inspect: https://vercel.com/mizchi/next-js-tutorial/2yh1nfshh [3s] |
| 108 | +✅ Production: https://next-js-tutorial-iota.now.sh [copied to clipboard] [31s] |
| 109 | +📝 Deployed to production. Run `now --prod` to overwrite later (https://zeit.ink/2F). |
| 110 | +💡 To change the domain or build command, go to https://zeit.co/mizchi/next-js-tutorial/settings |
| 111 | +
|
| 112 | +$ vercel --prod |
| 113 | +Vercel CLI 19.0.1 |
| 114 | +🔍 Inspect: https://vercel.com/mizchi/next-js-tutorial/2yh1nfshh [2s] |
| 115 | +✅ Production: https://next-js-tutorial-iota.now.sh [copied to clipboard] [4s] |
| 116 | +``` |
| 117 | + |
| 118 | +これは自分の環境での実行例です。最後に表示された、 Production の URL を開いてみてください。(ここでは [https://next-js-tutorial-iota.now.sh/](https://next-js-tutorial-iota.now.sh/)) を開いてみてください。 |
| 119 | + |
| 120 | +この URL は誰でもアクセスすることができます。つまり、あなたが作ったウェブサイトが vercel 上で公開されました!おめでとうございます! |
| 121 | + |
| 122 | +## 解説しなかったこと |
| 123 | + |
| 124 | +- npm とはなにか package.json とはなにか |
| 125 | +- next.js がどのようにうごいているのか |
| 126 | +- React とはなにか |
| 127 | +- JSX の文法 |
| 128 | +- vercel はどのように動いているのか |
0 commit comments