Cordovaでハイブリッドアプリを作成しています。
都度 AndroidやiOS端末にインストールして動作確認すると時間もかかるので、実装初期段階ではブラウザで動作確認をしています。
Google Chromeの検証ツールでデバッグもできるし。

てなことで

cordova serve browser

or

cordova emulate browser

を入力しブラウザで動作確認をしていました。

ある日git操作していて余計なファイルが散乱していたのでgit cleanコマンドで不要ファイルを削除しました。
するとその後からコマンドを入力しても以下エラーメッセージが表示されて、ブラウザで動作確認することができなくなりました。

エラーメッセージ 見出しへのリンク

〜〜〜〜〜〜〜〜
Running "cordova_build_debug:wp8" (cordova_build_debug) task
skip - cordova build already called.

Done.
*** End grunt ***

shell.js: internal error
TypeError: Cannot use 'in' operator to search for 'length' in undefined
    at Object._cp (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/src/cp.js:122:26)
    at Object.cp (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/src/common.js:186:23)
    at PlatformApiPoly.prepare (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/PlatformApiPoly.js:192:15)
    at /Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:103:32
    at _fulfilled (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/q/q.js:810:14
    at flush (/Users/~~~~~~~/.nodebrew/node/v4.5.0/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at nextTickCallbackWith0Args (node.js:420:9)

browserプラットフォームがあるか以下コマンドで確認しても存在しています。

cordova platform -l

解決方法 見出しへのリンク

そんな時はインストール済みのプラットフォーム browserを削除して再インストールしましょう。

  1. 削除
cordova platform rm browser
  1. 追加
cordova platform add browser

上記ログも表示されず正常にブラウザで動作確認することができました。

以上