最近仕事でお世話になっているPhoneGap
その時から全然触ってなかったら、npmのバージョンが
$ npm -v
1.4.28
古い・・・古いすぎる!!
早速バージョンアップ
早速バージョンアップ
$ npm update -g npm
$ npm -v
3.8.7
すごいバージョンの差 ^^;
そんなこんなで今回はPhoneGapをタスクツールのGruntと
組み合わせてやってみたいと思います。
組み合わせてやってみたいと思います。
ちなみに・・・
PhoneGap
と並んでよく出てくるワードでCordova
というのがあります両者の違いですが、公式のFAQでは
PhoneGap is an open source distribution of Cordova. Think about Cordova’s relationship to PhoneGap like WebKit’s relationship to Safari or Chrome.
となっています。
CordovaをWebkitに例えるならば、PhoneGapはWebKitから派生したSafariやChromeみたいなもので、PhoneGapはCordovaを内包してるようなイメージです。
CordovaをWebkitに例えるならば、PhoneGapはWebKitから派生したSafariやChromeみたいなもので、PhoneGapはCordovaを内包してるようなイメージです。
実際、PhoneGapはCordovaの全ての機能が使えます。
環境セットアップ
※ ここではPhoneGapのコマンドラインツールである
PhoneGap CLI
を使用します!!
↑のnpmのアップデートをやりましたが、最初からセットアップする場合、
Node.js
のインストールが必要です。
次に最新の
PhoneGap CLI
をインストールします。$ npm install -g phonegap@latest
プロジェクト作成から実行まで
次にプロジェクト作成〜実行まで一気にやりたいと思います。
# プロジェクトの作成
$ phonegap create <path> --id <id> --name <projectname>
# プラットフォームの追加(ios や androidなど)
$ phonegap cordova platform add <ios/android> --save
# ビルド
$ phonegap cordova build <ios/android>
# 実行
$ phonegap cordova run <ios/android>
※ と思ったらphonegapコマンドで以下のようなエラーが・・・
module.js:340
throw err;
^
Error: Cannot find module 'phonegap-build-api'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/usr/local/lib/node_modules/phonegap/node_modules/phonegap-build/lib/phonegap-build/login.js:6:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
やっぱりアップデートが極端だったから?
色々試してもダメだったので、phonegapを再インストールしてみ他ところエラーがなくなりました。
色々試してもダメだったので、phonegapを再インストールしてみ他ところエラーがなくなりました。
$ sudo npm uninstall -g phonegap
$ npm install -g phonegap
エラーがなくなった所でビルドと実行をGruntのタスク化にしてみたいと思います。
タスク化するにあたり
タスク化するにあたり
grunt
とgrunt-exec
をインストールします。$ npm install -g grunt-cli
$ npm install grunt --save-dev
$ npm install grunt-exec --save-dev
プロジェクトのビルドと実行をタスク化してみたいと思います。
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-exec');
grunt.initConfig({
exec: {
build: {
command: 'phonegap cordova build'
},
run: {
command: 'phonegap cordova run'
}
}
});
grunt.registerTask('default', ['exec:build', 'exec:run']);
};
これで
$ grunt
とするとビルドと実行が可能になりました^^。
0 件のコメント:
コメントを投稿