Angular4時代にAngular-CLIでAngular2の雛形を作る
angular は、2系から CLI (コマンドラインのインターフェース)を使って、アプリケーションの雛形を作ることが出来るようになっています。
このツールは angular cli という名前です。
最近、こうした形式のプログラミングツール多いですね。 慣れるまでは、「なんでプログラム書き始めるまでに、こんな幾つものコマンドを覚えて実行しないとダメなのか」とクラクラしたものでした。
分かると便利なんですけどもねー。 変化への適応能力落ちてるわー(´・ω・`)
最新の angular-cliは、1.0.3 になっています。
GitHubのページを見ると、インストールは以下のコマンドで実行することになります。
npm install -g @angular/cli
これで ng コマンドが使えるようになり、ng new で雛形を作ることが出来るようになります。 が、、、生成される雛形は、angular 4.0 を使ったものになります。
生成された雛形のpackage.json を見ると、以下のようになっています。
“dependencies”: { “@angular/common”: “^4.0.0”, “@angular/compiler”: “^4.0.0”, “@angular/core”: “^4.0.0”, “@angular/forms”: “^4.0.0”, “@angular/http”: “^4.0.0”, “@angular/platform-browser”: “^4.0.0”, “@angular/platform-browser-dynamic”: “^4.0.0”, “@angular/router”: “^4.0.0”, “core-js”: “^2.4.1”, “rxjs”: “^5.1.0”, “zone.js”: “^0.8.4” },
では、angular 2系の雛形は、どうやって作れば良いのでしょう?
この答えが分からずに2時間程ハマってしまいました・・・。 オプションや環境変数などで、angularのバージョンを指定出来るのでは?と思い調べてみたのですが見つからず、、、
最終的に、上記でインストールした @angular/cli を一度アンインストールして angular-cli をインストール しなおすことで対応しました。
まさか、ツールの名前が変わっていたとは・・・。
angular-cliも ng コマンドを使って雛形を作ります。 試しに使ってみると、angular のバージョンは 2.3.1 でした。
“dependencies”: { “@angular/common”: “^2.3.1”, “@angular/compiler”: “^2.3.1”, “@angular/core”: “^2.3.1”, “@angular/forms”: “^2.3.1”, “@angular/http”: “^2.3.1”, “@angular/platform-browser”: “^2.3.1”, “@angular/platform-browser-dynamic”: “^2.3.1”, “@angular/router”: “^3.3.1”, “core-js”: “^2.4.1”, “rxjs”: “^5.0.1”, “ts-helpers”: “^1.1.1”, “zone.js”: “^0.7.2” },
ふーむ。 つまり、angular2 の雛形用が angular-cli で angular4 の雛形用は、@angular/cli と分かれている、ということなのでしょうか。
でも、ヘルプ等を見ると”angular-cli”って、近いうちに非推奨になるぽいんですよね。
C:> ng help
As a forewarning, we are moving the CLI npm package to “@angular/cli” with the next release, which will only support Node 6.9 and greater. This package will be officially deprecated shortly after.
To disable this warning use “ng set –global warnings.packageDeprecation=false”.
うーむ。
コレを見ると、@angular/cli に移った方が良いのかなぁ。 でも、その場合に angular2 の雛形ってどうやって作るのかな~・・・ わからん。
ご存じの方おられましたら、教えて頂けるとありがたいです。 あークラクラするわー。(適応力低)
コード書いてないのに3時だよ・・・ 寝よ寝よ