Yeoman(ヨーマン)
公式ページ: http://yeoman.io/
Webアプリを開発する際に、利用したいライブラリを開発用フォルダー内に展開して、ビルドやテストの環境なども構築してくれるサービス。標準的なプロジェクトフォルダーの構築などを自動的に行ってくれるので大変便利。
macの OS X Yosemite 10.10.3 にインストールして、公式サイトのチュートリアルを完了するまでの流れをまとめる。
事前準備
nodeとnpmを最新版にする
Yeomanは最新版のnodeとnpmが必要。macにはプリセットでそれらがインストールされているが、バージョンが古いので、一度アンインストールして、最新版をインストールしなおす。すでに最新版になっていればこの手順は不要。
nodeとnpmのアンインストール
- 参考URL Mac OS X から Node.js をアンインストールする方法
- 上記サイトに掲載されているnodeのアンインストール用のコマンドをコピーして、macのターミナルに貼り付けて実行する
- 同様に、npmも削除する
nodeとnpmをインストール
管理が簡単で、バージョンを切り替えることもできるnodebrewを使ってnodeをインストールする。
- 参考URL Node.js のバージョンを nodebrew で管理する (with Mac OS X + Homebrew) - Qiita
- 上記サイトに従って、以下のようにnodebrewをインストールする(事前に、homebrewがインストールされている必要がある)
$ brew search nodebrew $ brew install nodebrew
- パスを設定するために、 vi ~/.bashrc などとして、設定ファイルを開く
- 以下の行を追加する
export PATH=$HOME/.nodebrew/current/bin:$PATH
- 以下を実行して、設定を有効にする
$ source ~/.bashrc
- ターミナルを開いた時に.bashrcが有効になるように設定をする。以下で.bash_profileを開く
$ vi ~/.bash_profile
- 以下のコードを追加する(参考URLより抜粋)
if [ -f ~/.bashrc ] ; then . ~/.bashrc fi
- 安定版のnodeをインストール
$ nodebrew install-binary stable
- インストールメッセージ中に、v0.12.2 のようなバージョンを表す文字列が表示される。そのバージョンを通常利用するバージョンに指定する。例えば、v0.12.2の場合は以下のとおり
$ nodebrew use v0.12.2
- 以上で、インストール完了。npmも合わせてインストールされているはずである。以下でそれぞれのバージョンを確認する
$ node -v && npm -v v0.12.2 2.7.5
すでにnodebrewを導入済みの場合は以下を実行して、新しいものがインストールされたらuseする。
$ nodebrew install stable
npmのグローバルインストール設定
npmは、nodeのパッケージマネージャである。グローバルインストールをYeomanのチュートリアルで行うが、フォルダーへのアクセス権限によってエラーが発生することがある。その際、sudoは使わず、予めユーザー用のグローバル設定をしておくことが推奨されているので、その設定を行う。
- 参考URL guides/npm-global-without-sudo.md at master · sindresorhus/guides · GitHub
- グローバルのインストール先のフォルダを作成する
$ mkdir ~/.npm-packages
- ~/.bashrc をviなどで開いて、以下の行を追加する(参考URLより抜粋)
NPM_PACKAGES="${HOME}/.npm-packages" NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" export PATH="$NPM_PACKAGES/bin:$PATH" # Unset manpath so we can inherit from /etc/manpath via the `manpath` # command unset MANPATH # delete if you already modified MANPATH elsewhere in your config MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
- ~/.npmrc をviなどで開いて、以下の行を追加する
prefix=${HOME}/.npm-packages
- source .bashrc をターミナルで実行して、設定を有効にする
Yeomanのインストール
- 土台を構築するyo、ビルドツールのgulpとgrunt、パッケージマネージャのbowerをインストール
$ npm install -g yo bower grunt-cli gulp
- 以下で、標準的なWebアプリジェネレータを取得する
$ npm install -g generator-webapp
- これらは、HTML5 Boilerplate(HTML5の代表的なテンプレート集), jQuery(JavaScriptの代表的なライブラリ), Modernizr(ブラウザの機能を調べるライブラリ), Bootstrap(標準的なインタフェースやレスポンシブルを簡単に構築できるcssとjsとfontのセット)が入っている
- 任意の場所に、任意の名前でプロジェクト用のフォルダを作成して、cdで入る
- 以下で、標準的なWebAppが準備される
yo webapp
- bootstrap,sass,Modernizrを組み込むかを選択して実行
- 以上で生成される
以下のようなエラーが表示された場合、原因はnodeのバージョンが古いこと。macではプリインストールされているnodeが悪さをすることがあるので、最初に記載したURLを参考にアンインストールする。その後、nodebrewをインストールして、最新版をインストールすると治る。
npm ERR! unpack Could not read data for ip-regex@1.0.3
npm ERR! unpack Could not read data for get-stdin@4.0.1
npm ERR! unpack Could not read data for repeating@1.1.2
npm ERR! Darwin 14.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.10.32
npm ERR! npm v2.8.4
npm ERR! Cannot read property 'dependencies' of undefined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues
npm ERR! Darwin 14.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.10.32
npm ERR! npm v2.8.4
(中略)
npm ERR! unpack Could not read data for bl@0.9.4
npm ERR! unpack Could not read data for xtend@4.0.0
npm ERR! unpack Could not read data for end-of-stream@1.1.0
npm ERR! unpack Could not read data for readable-stream@1.0.33
npm ERR! Please include the following file with any support request:
npm ERR! /Users/yutanaka/Documents/temp/yeoman/test/npm-debug.log
Yeomanのチュートリアル
Yeoman公式サイトの以下のページから、AngularJSを使ったtodoアプリの構築手順を試すことができる。
Let's Scaffold a Web App with Yeoman | Yeoman
各ステップの注意点をまとめる。
Step1
- すでに構築済みなので作業は不要
- Yeomanをインストールしたのが古い場合は、最新版に更新しておく
Step2
- 問題なし
- generator-angular のインストールでエラーが発生する場合は、nodeとnpmのバージョンが古いことが原因の可能性が高い。最初に紹介している手順でnodeとnpmを更新する
Step3
- 問題なし。手順通りに進めれば良い
Step4
- 構成の紹介のみなので問題なし
Step5
grunt serve でエラーが発生する(2015/4/30現在)。以下でエラーを回避する。
// Automatically inject Bower components into the app wiredep: { options: { // cwd: '<%= yeoman.app %>' },
Step6
Step7
- 問題なし。手順通り進める
Step8
grunt test で Can't find variable: jQuery というエラーが発生する場合がある(2015/4/30現在)。その場合は、以下の対応を行う。
- test/karma.conf.js をテキストエディタで開く
- files: [の一覧に、以下の行を追加する
"bower_components/jquery/dist/jquery.js",
Step9以降
- 問題なし。手順通り進める
まとめ
以上で、インストールからチュートリアルまで完了できると思います。Webアプリの世界に慣れていないと、標準的なフォルダー構成を作るだけでも大変であるし、必要なライブラリの収集、ライブリロードやビルド、テストの設定までやってくれるのは大変助かります。
Yeoman自体や利用する環境のバージョンアップが頻繁なため、環境を最新に保つことが重要です。また、公式ドキュメントにないエラーも色々と発生ため、ネットで検索して、英語を読みながら原因を調べる必要もあります。しかし、得られるメリットの大きさを考えると、それらを乗り越えるメリットは大きいと感じます。
エラーを調べながら進めたため、対応が抜けている部分があるかもしれません。何かあればご連絡いただければ幸いです。