2013/12/14

EclipseでMeteorデバック 色々調査してみました

 eclipseでなんとかMeteorのフォルダを開くことはできたのですが、head.jsで文法エラーが検出されました。
 エラーとなっているhead.jsなんて作った覚えがないので、どこに作られているのか検索してみます。
find ~/. -name head.js -exec ls -al {} \;
 なんとホームディレクトリの以下に格納されていることが分かりました。
-r--r--r-- 1 hitoshi user 23 10月 21 14:48 .meteor/tools/0b2f28e18b/lib/node_modules/npm/node_modules/semver/head.js
-r--r--r-- 1 hitoshi user 23  6月 18 08:08 .meteor/tools/0b2f28e18b/lib/node_modules/semver/head.js
 これってファイルのタイムスタンプから、meteorインストール時に作られたファイルではないかと。
 とりあえず実験ということで、ホームディレクトリの.meteorディレクトリをリネームして、とりあえずなかったことにしてみます。
mv .meteor .meteor.save
 そんでもって、meteorを起動してみました。
cd meteor/hello
meteor
 なんと自分でダウンロードしてきますね。
hitoshi, this is your first time using Meteor!
Installing a Meteor distribution in your home directory.
######################################################################## 100.0%
[[[[[ ~/meteor/hello ]]]]]

=> Meteor server running on: http://localhost:3000/
 見事にネットからダウンロードにて自動復旧されたようです。
find . -name head.js -exec ls -al {} \;
-r--r--r-- 1 hitoshi user 23 10月 21 14:48 ./.meteor/tools/0b2f28e18b/lib/node_modules/npm/node_modules/semver/head.js
-r--r--r-- 1 hitoshi user 23  6月 18 08:08 ./.meteor/tools/0b2f28e18b/lib/node_modules/semver/head.js

 しかしhead.jsは本当に必要なものなのでしょうか??  head.jsだけ消して見ました。
find . -name head.js -exec rm -i {} \;
rm: 書き込み保護されたファイル 通常ファイル `./.meteor/tools/0b2f28e18b/lib/node_modules/npm/node_modules/semver/head.js' を削除しますか? y
rm: 書き込み保護されたファイル 通常ファイル `./.meteor/tools/0b2f28e18b/lib/node_modules/semver/head.js' を削除しますか? y
 meteorを再起動したところ、head.jsがなくても起動しました。本当に不要なファイルなのかもしれません。
 早速eclipseのProject Explorerから対象プロジェクトをF5キーでリフレッシュしたところhead.jsのエラーは無事解決しました。
 で今度は、semver.browser.jsについてエラーが検出されました。どうも「;」から始まる行がエラーとして検出されるようですね。
 こちらはsemver.browser.jsを修正しようとしたところ、このファイル書き込み権がないのですね。次のエラーが発生しました。
 今回は調査なので、~/.meteorディレクトリ配下のファイルに、全部書き込み件を付与してしまいます。
find .meteor -type f -exec chmod +w {} \;
 変更して見ましたが、エラーは解消しないですね。これってeclipseの文法チェックが厳しすぎるのではないのでしょうか??
 筆者はjavascriptに詳しくないので、当該ファイルを削除することにしてみます。(今回は色々調査ですし)  さあ消しましょう。
find .meteor -name semver.browser.js -exec rm -i {} \;
 それでも次のエラーが検出されました。
 じゃあエラー検出分を片っ端から消していってみましょうと、やってみたところ次のものを削除するはめに。
find .meteor -name semver.js -exec rm -i {} \;
find .meteor -name semver.min.js -exec rm  {} \;
find .meteor -name amd.js -exec rm  {} \;
find .meteor -name index.js -exec rm  {} \;
find .meteor -name no-module.js -exec rm  {} \;
find .meteor -name parse.js -exec rm  {} \;
find .meteor -name quote.js -exec rm  {} \;
find .meteor -name Makefiledryice.js -exec rm  {} \;
find .meteor -name Makefile.dryice.js -exec rm  {} \;
find .meteor -name assert-shim.js -exec rm  {} \;
find .meteor -name mini-require.js -exec rm  {} \;
find .meteor -name suffix-browser.js -exec rm  {} \;
find .meteor -name test-prefix.js -exec rm  {} \;
find .meteor -name test-suffix.js -exec rm  {} \;
find .meteor -name array-set.js -exec rm  {} \;
find .meteor -name base64-vlq.js -exec rm  {} \;
find .meteor -name base64.js -exec rm  {} \;
find .meteor -name binary-search.js -exec rm  {} \;
find .meteor -name source-map-consumer.js -exec rm  {} \;
find .meteor -name source-map-generator.js -exec rm  {} \;
find .meteor -name source-node.js -exec rm  {} \;
find .meteor -name util.js -exec rm  {} \;
find .meteor -name source-map.js -exec rm  {} \;
find .meteor -name amdefine.js -exec rm  {} \;
find .meteor -name intercept.js -exec rm  {} \;
find .meteor -name run-tests.js -exec rm  {} \;
find .meteor -name test-api.js -exec rm  {} \;
find .meteor -name test-array-set.js -exec rm  {} \;
find .meteor -name test-base64-vlq.js -exec rm  {} \;
find .meteor -name test-base64.js -exec rm  {} \;
find .meteor -name test-binary-search.js -exec rm  {} \;
find .meteor -name test-dog-fooding.js -exec rm  {} \;
find .meteor -name test-source-map-consumer.js -exec rm  {} \;
find .meteor -name test-source-map-generator.js -exec rm  {} \;
find .meteor -name test-source-node.js -exec rm  {} \;
find .meteor -name source-map-support.browser.js -exec rm  {} \;
find .meteor -name source-map-support.js -exec rm  {} \;
find .meteor -name test.js -exec rm  {} \;
find .meteor -name extracter.js -exec rm  {} \;
find .meteor -name reader.js -exec rm  {} \;
find .meteor -name buffer-entry.js -exec rm  {} \;
find .meteor -name entry-writer.js -exec rm  {} \;
find .meteor -name entry.js -exec rm  {} \;
find .meteor -name extended-header-writer.js -exec rm  {} \;
find .meteor -name extended-header.js -exec rm  {} \;
find .meteor -name extract.js -exec rm  {} \;
find .meteor -name global-header-writer.js -exec rm  {} \;
find .meteor -name header.js -exec rm  {} \;
find .meteor -name pack.js -exec rm  {} \;
find .meteor -name block-stream-pause.js -exec rm  {} \;
find .meteor -name block-stream.js -exec rm  {} \;
find .meteor -name dropper-pause.js -exec rm  {} \;
find .meteor -name dropper.js -exec rm  {} \;
find .meteor -name basic.js -exec rm  {} \;
find .meteor -name nopad-thorough.js -exec rm  {} \;
find .meteor -name nopad.js -exec rm  {} \;
find .meteor -name pause-resume.js -exec rm  {} \;
find .meteor -name thorough.js -exec rm  {} \;
find .meteor -name two-stream.js -exec rm  {} \;
find .meteor -name intherits.js -exec rm  {} \;
find .meteor -name inherits.js -exec rm  {} \;
find .meteor -name inherits_browser.js -exec rm  {} \;
find .meteor -name tar.js -exec rm  {} \;
find .meteor -name 00-setup-fixtures.js -exec rm  {} \;
find .meteor -name pack-no-proprietary.js -exec rm  {} \;
find .meteor -name zz-cleanup.js -exec rm  {} \;
find .meteor -name browser.js -exec rm  {} \;
find .meteor -name underscore-min.js -exec rm  {} \;
find .meteor -name underscore.js -exec rm  {} \;
find .meteor -name base.js -exec rm  {} \;

 こんなことすると、meteorは正常動作しないのでは?
 試しに起動して見たところ、やっぱりエラーがでますね。
meteor

/home/hitoshi/.meteor/tools/0b2f28e18b/tools/meteor.js:1480
}).run();
   ^
Error: Cannot find module 'underscore'
    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 /home/hitoshi/.meteor/tools/0b2f28e18b/tools/meteor.js:10:11
 eclipseのJDTの調整をすべきなんでしょうが、どうしたらいいものでしょう??  引き続き調査してみます。

0 コメント:

コメントを投稿