SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

次世代Webアプリケーションフレームワーク「Angular」の活用

JavaScriptフレームワーク「Angular」新バージョン4の変更点と今後の展望

次世代Webアプリケーションフレームワーク「Angular」の活用 第9回

プロジェクトをバージョン4に更新する方法

 次に、バージョン4への更新方法を説明していきます。

アニメーション機能を利用しない場合

 まず、アニメーション機能を利用しない単純なサンプル(001-pre)で、基本的な流れを説明します。このサンプルはAngularバージョン2.4を利用しており、実行すると図1のようにAngularのバージョン番号を表示します。

図1 バージョンアップ前のサンプル(001-pre)
図1 バージョンアップ前のサンプル(001-pre)

 画面に表示するバージョン情報は、リスト1(1)のVERSION.fullで取得しています。

リスト1 バージョン番号を表示するコンポーネント(001-pre/src/app/app.component.ts)
import { Component, VERSION } from "@angular/core";

@Component({
  selector: "my-app",
  template: `<h1>Angular {{version}}</h1>`
})
export class AppComponent {
  version = VERSION.full; // Angularのバージョン番号 ...(1)
}

 Angularをバージョン4に更新するためには、リスト2またはリスト3のコマンドを実行します(利用するOSによって異なります)。

リスト2 Angular 4へ更新するコマンド(Linux/Macの場合)
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save
リスト3 Angular 4へ更新するコマンド(Windowsの場合)
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

 コマンドを実行すると、図2のようにpackage.jsonが更新され、Angularパッケージのバージョン番号が変更されます。

図2 コマンド実行前(写真=左)と実行後(写真=右)のpackage.json
図2 コマンド実行前(写真=左)と実行後(写真=右)のpackage.json

 コマンド実行後にプロジェクトを実行すると、図3のようにAngularバージョン4でWebページが実行されます。ダウンロードできるサンプルには、001-preをバージョンアップした後のサンプル(002-post)を含めています。

図3 バージョンアップ後の実行結果(002-post)
図3 バージョンアップ後の実行結果(002-post)

[補足]依存性解決の警告やエラー

 リスト2/3のコマンドを実行後にnpm installコマンドを実行すると、依存性解決の警告やエラーが表示されることがあります。本記事で紹介するバージョンアップ後のサンプル(002-post、004-anim-post)では、package.jsonに含まれるtypescriptとzone.jsの記述を微調整しています。詳細はサンプルコードを参照してください。

アニメーション機能を利用する場合

 アニメーション機能を利用する場合は、リスト2/3のコマンドのほかに、コードの修正が必要です。図4のサンプルで、修正方法を説明します。アニメーションの内容は前回記事で紹介したサンプル(001-anim1)と同じで、画面の四角形をクリックすると大きさと色が変わりながらアニメーションします。アップデート前(003-anim-pre)と、アップデート後(004-anim-post)で、アニメーションの内容は変わりません。なお、両サンプルでは、リスト1同様にAngularのバージョン番号を表示します。

図4 アニメーション利用のサンプル(004-anim-post)
図4 アニメーション利用のサンプル(004-anim-post)

 まず、アニメーション機能を提供するBrowserAnimationModuleを参照するように、モジュール定義ファイルapp.modules.tsにリスト4(1)(2)のように追記します。

リスト4 BrowserAnimationModuleを追加(004-anim-post/src/app/app.modules.ts)
import { NgModule }      from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
// BrowserAnimationsModuleを参照 ...(1)
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
(略)
@NgModule({
  imports:      [
    BrowserModule,
    BrowserAnimationsModule // BrowserAnimationsModuleを追加 ...(2)
  ],
(略)

 コンポーネントでは、@angular/coreではなく、@angular/animationsからアニメーション関係の関数を参照するようにします。

リスト5 アニメーション関係の関数参照(004-anim-post/src/app/app.component.ts)
import {
    trigger, state, style, transition, animate
} from "@angular/animations";// アニメーション関数は@angular/animationsから参照

 さらに、モジュールをロードするSystemJSの設定ファイルsystejs.config.jsに、アニメーション関連モジュールの参照先をリスト6(1)のように追加します。

リスト6 アニメーションモジュールのロード設定(004-anim-post/src/systemjs.config.js)
map: {
(略)
  '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
  // animations関連の以下参照を追加 ...(1)
  '@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',
  '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
  '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
(略)
},

次のページ
バージョン4の新機能を試す

この記事は参考になりましたか?

次世代Webアプリケーションフレームワーク「Angular」の活用連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト  吉川 英一(ヨシカワ エイイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10119 2017/04/27 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー