5

ヘルプ!

私はMeteorを使って約2か月間働いていますが、OSXの家庭環境ではすべてが順調に進んでいます。しかし、私は最近、そのコードの一部を職場のWindows 7環境に持ち込みましたが、MeteorはWindowsで同じように動作していません。

具体的には、コードのバンドルは途方に暮れ続けます。コードベースに変更を加えると、古い.meteor / localディレクトリをフラッシュしてアプリケーションを再バンドルする代わりに、サーバーコンソールでENOTEMPTY例外が発生します。タスクエクスプローラーでmongodプロセスを停止し、.meteor / localディレクトリを手動で削除すると、アプリケーションを再起動でき、新しいコードの変更を含むアプリがバンドルされてデプロイされます。

Running on: http://localhost:3000/
No dependency info in bundle. Filesystem monitoring disabled.
Errors prevented startup:
Exception while bundling application:
Error: ENOTEMPTY, directory not empty 'c:\Users\Abigail\My Documents\GitHub\canvas tracker\.meteor\local\build\server'
    at Object.fs.rmdirSync (fs.js:456:18)
    at Object.module.exports.rm_recursive (c:\Program Files (x86)\Meteor\app\lib\files.js:256:10)
    at c:\Program Files (x86)\Meteor\app\lib\files.js:254:15
    at Array.forEach (native)
    at Function._.each._.forEach (c:\Program Files (x86)\Meteor\lib\node_modules\underscore\underscore.js:79:11)
    at Object.module.exports.rm_recursive (c:\Program Files (x86)\Meteor\app\lib\files.js:252:9)
    at _.extend.write_to_directory (c:\Program Files (x86)\Meteor\app\lib\bundler.js:493:11)
    at Object.exports.bundle (c:\Program Files (x86)\Meteor\app\lib\bundler.js:685:12)
    at exports.run.restart_server (c:\Program Files (x86)\Meteor\app\meteor\run.js:615:26)
    at c:\Program Files (x86)\Meteor\app\meteor\run.js:726:9

Please fix the problem and restart.

ただし、オンザフライでコードを変更したり、再バンドルしたりすることはありません。:(アプリケーションを起動しようとすると、EPERMエラーが発生することもあります。

Running on: http://localhost:3000/
No dependency info in bundle. Filesystem monitoring disabled.
Errors prevented startup:
Exception while bundling application:
Error: EPERM, operation not permitted 'c:\Users\Abigail\My Documents\GitHub\canvas-tracker\.meteor\local\.build.build'
    at Object.fs.renameSync (fs.js:439:18)
    at _.extend.write_to_directory (c:\Program Files (x86)\Meteor\app\lib\bundler.js:628:8)
    at Object.exports.bundle (c:\Program Files (x86)\Meteor\app\lib\bundler.js:685:12)
    at exports.run.restart_server (c:\Program Files (x86)\Meteor\app\meteor\run.js:615:26)
    at c:\Program Files (x86)\Meteor\app\meteor\run.js:726:9
    at Object.exports.launch_mongo (c:\Program Files (x86)\Meteor\app\lib\mongo_runner.js:146:5)
    at exports.run.launch (c:\Program Files (x86)\Meteor\app\meteor\run.js:712:39)
    at Server.exports.run (c:\Program Files (x86)\Meteor\app\meteor\run.js:770:5)
    at Server.g (events.js:193:14)
    at Server.EventEmitter.emit (events.js:90:17)

Please fix the problem and restart.

これを解決する方法について何かアイデアはありますか?Windows 7 Ultimate、SP1、x64でMeteor0.5.4を使用しています。

編集:これらのエラーは、コードにエラーがある場合は常に発生することに注意してください。私のOSX環境では、エラーが発生した場合でも、コードはコンパイル、縮小、バンドルされ、ページがレンダリングされない可能性があり、ChromeコンソールでさまざまなJavascriptエラーが発生し、デバッグする必要があります。私のWin7環境では、まったく同じことを行っていますが、Chromeでデバッグできる半壊れたアプリをコンパイルする代わりに、バンドルプロセス中に停止します。どちらの場合でも、私のJavascriptコードにエラーがあります(私はそれだけ知っています)。しかし、OSXでは、それはまだバンドルされており、デバッグに進むことができます。Win7では、これらのENOTEMPTYおよびEPERM例外のため、デバッグ手順に進むことができません...

編集:そして、はい、私は全員にフルアクセスを与えることによってプロジェクトディレクトリ全体のアクセス許可を削除しようとしました。残念ながら、それではうまくいきませんでした。

4

3 に答える 3

3

Win7. Two Steps to made it work.

1) Delete the DB Lock From MongoDB C:\Users**USERNAME**\leaderboard.meteor\local\db mongod.lock

2) Close all Open Editors pointing to files in project C:\Users**USERNAME**\leaderboard.meteor\local\build\programs\client\app leaderboard.js

In my case i kept an editor open to edit the leaderboard.js It needs to be shut down, as the open file handle seems to interrupt.

于 2013-10-31T16:54:17.630 に答える
2

Okay, so with the help of Tom Wijsman, we managed to track down the issue. The short answer is that it was the GitHub Bash shell.

The long answer is that ENOTEMPTY and EPERM are caused by a directory not getting deleted correctly during the bundling process. The directory not getting deleted correctly was caused by the code using an exec() command, which passed the delete command off to a shell. Turned out I was using the GitHub Bash shell, which is case sensitive, unlike the standard Windows cmd.exe, which is case insensitive. The case sensitivity was causing the shell not to recognize the path that should be removed, thus not removing it, thus causing a break during the bundle process.

100x thanks to Rahul for finding the previous bug reports on this issue! You were the hero that found the needle in the haystack!

于 2013-01-25T15:54:05.430 に答える
2

Had the exact problem in windows 8. Turning off my McAfee antivirus (Real time scanning) just while running meteor cmd solved it.

于 2013-09-15T08:14:40.223 に答える