Angular8をインストールしてbootstrap4でポートフォリオサイトのひな型を作る

プログラミング
プログラミング

構築環境

今回構築した環境は、以下の通りです。

  • OS: Ubuntu 16.04
  • Angular: 8.2.14
  • Angular CLI: 8.3.19
  • Node.js: 12.13.0

NodeJSのインストール

Node.jsはバージョン管理したいので、n packageを導入します。

n packageをインストールするために、nodejs, npmをインストールします。

$ sudo apt install -y nodejs npm

npmでn packageをインストールします。

$ sudo npm install n -g

n packageでNode.jsをインストールします。

$ sudo n stable

最初に入れた古いnodejs, npmはアンインストールし、再ログイン

$ sudo apt purge -y nodejs npm
$ exec $SHELL -l

Node.jsのstableの最新版がインストールされていることを確認

$ node -v
v12.13.0

ちなみに、任意のNode.jsのバージョンを使いたい場合は、以下のように実行

$ sudo n 9.11.1
$ node -v
v9.11.1

Angular CLIのインストール

Angular CLIは、プロジェクト作成やコンポーネント作成など、様々な便利コマンドが詰まっているCLIツールです。

npmで一発インストールできます。

$ sudo npm install -g @angular/cli

バージョン確認

$ ng --version

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 8.3.19
Node: 12.13.0
OS: linux x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.803.19
@schematics/update                0.803.19
.
.(略)

2019/11/18時点では、8.2.14がインストールされました。

参考: 公式ドキュメントはこちら

プロジェクト作成

プロジェクトを作成し、プロジェクトホームフォルダへ移動します。

gitをインストールしていない場合はインストールしておくこと。

$ sudo apt install -y git

プロジェクトを作成します。Portfolioは好きな名前で大丈夫です。

$ ng new Portfolio
$ cd Portfolio

最初の選択肢で出てくるng-routeは、のちのち使いたいので”y”を選択

Would you like to add Angular routing? Yes

正しく環境構築されているか実際にサイトを動かして確認します。

$ ng serve --host 0.0.0.0

–hostオプションは、外部からアクセスする際に必要になります。
ローカル環境で開発、アクセスする場合は必要ありません。

以下のような画面が表示されていれば、正しく環境構築できています。

以下のような画面が表示されていれば、正しく環境構築できています。

ここまでで、開発の準備が整いました。

次は、ポートフォリオでおなじみに、bootstrap4の適用です。

Bootstrapの適用

Bootstrapの適用にはng-bootstrapを使います。

ng-bootstrapの導入

モジュールのインストール

$ npm install --save @ng-bootstrap/ng-bootstrap

Bootstrap本体のインストール

$ npm install --save bootstrap

スタイルの適用

$ vi angular.json
  "styles": [
   "node_modules/bootstrap/dist/css/bootstrap.min.css",
   "src/styles.css"
  ],

モジュールの適用

$ vi src/app/app.module.ts
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; ★


  @NgModule({
    ...
    imports: [ NgbModule, ... ], ★
    ...
  })
  export class AppModule { }

これでng-bootstrapの導入は完了。

ng-bootstrapの動作確認

Bootstrap公式ページを参考に、starter画面ぽいものを作ってみます。

まずは、全体のレイアウトをちょっと修正。
bodyにpadding-topを設定します。

$ vi src/index.html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Site Name</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

<style>
body {
  padding-top: 5rem;
}
</style>

navibarをページ全体に表示するので、app.component.htmlに設定します。
ここでは、Bootstrap公式のサンプルを参考にします。

$ vi src/app/app.component.html
<style>
.starter-template {
  padding: 3rem 1.5rem;
  text-align: center;
}
</style>

<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <a class="navbar-brand" href="#">ポートフォリオ</a>
</nav>

<main role="main" class="container">
  <div class="starter-template">
    <h1>ポートフォリオチュートリアル</h1>
    <p class="lead">AngularJSとbootstrap4でポートフォリオサイトのひな型を作る</p>
    <div class="form1" style="margin-bottom: 2rem">
      <div class="form-group">
        <input 
          type="text" 
          class="form-control"
          placeholder="Input From"/>
      </div>
      <button class="btn btn-primary">Search</button>
    </div>
  </div>
  <router-outlet></router-outlet>
</main>

mainの内側のコンテンツは、ページごとに表示する内容を変えたいので、テンプレート化してルーティングを設定します。

トップページ用テンプレートの生成

$ ng g component top-page

テンプレートを編集

$ vi src/app/top-page/top-page.component.html
<div class="starter-template">
  <h1>ポートフォリオチュートリアル</h1>
  <p class="lead">AngularJSとbootstrap4でポートフォリオサイトのひな型を作る</p>
  <div class="form1" style="margin-bottom: 2rem">
    <div class="form-group">
      <input 
        type="text" 
        class="form-control"
        placeholder="Input From"/>
    </div>
    <button class="btn btn-primary">Search</button>
  </div>
</div>

app.component.htmlから、コンテンツの箇所を削除

$ vi src/app/app.component.html
<style>
.starter-template {
  padding: 3rem 1.5rem;
  text-align: center;
}
</style>

<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <a class="navbar-brand" href="#">ポートフォリオ</a>
</nav>

<main role="main" class="container">
  <div class="starter-template">
    <router-outlet></router-outlet>
  </div>
</main>

ルーティングを編集

$ vi src/app/app-routing.module.ts
//...
import { TopPageComponent } from './top-page/top-page.component'


const routes: Routes = [
  { path: '', redirectTo: '/top-page', pathMatch: 'full' },
  { path: 'top-page', component: TopPageComponent }
];
//...

画面を表示して、以下のようにBootstrapな画面が表示されていれば完成です。

画面を表示して、以下のようにBootstrapな画面が表示されていれば完成です。

まとめ

今回は、Ubuntuを使って、Angularのインストールから、Bootstrap適用までの手順を説明しました。
次回は、大体のサイトで必要になるログイン機能を実装してみたいと思います。
Firebaseを使ってGoogleアカウントの認証を使う予定です。

コメント

タイトルとURLをコピーしました