5

帮助!

我已经使用 Meteor 大约两个月了,在我的 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 上使用 Meteor 0.5.4。

编辑:我应该提到,只要代码中有错误,就会发生这些错误。在我的 OSX 环境中,如果出现错误,代码仍将编译、缩小和捆绑,并且页面可能无法呈现,并且我将在 Chrome 控制台中收到各种 Javascript 错误,然后我必须对其进行调试。在我的 Win7 环境中,我正在做完全相同的事情,但不是编译一个半损坏的应用程序,然后我可以在 Chrome 中调试它,而是在捆绑过程中停止。无论哪种情况,我的 Javascript 代码都有错误(我知道很多)。但在 OSX 中,它仍然会捆绑,我可以继续调试。在 Win7 中,由于这些 ENOTEMPTY 和 EPERM 异常,我无法进入调试步骤......

编辑:而且,是的,我已经尝试通过向所有人授予完全访问权限来消除整个项目目录的权限。不幸的是,这并没有奏效。

4

3 回答 3

3

赢7。两个步骤使其工作。

1) 从 MongoDB C:\Users**USERNAME**\leaderboard.meteor\local\db mongod.lock 删除数据库锁

2) 关闭所有指向项目 C:\Users**USERNAME**\leaderboard.meteor\local\build\programs\client\app leaderboard.js 文件的打开编辑器

在我的情况下,我打开了一个编辑器来编辑 leaderboard.js 它需要关闭,因为打开的文件句柄似乎中断了。

于 2013-10-31T16:54:17.630 回答
2

在 Windows 8 中遇到了确切的问题。在运行流星 cmd 时关闭我的 McAfee 防病毒软件(实时扫描)解决了它。

于 2013-09-15T08:14:40.223 回答
2

好的,所以在 Tom Wijsman 的帮助下,我们设法找到了问题所在。简短的回答是它是 GitHub Bash shell。

长答案是 ENOTEMPTY 和 EPERM 是由捆绑过程中未正确删除目录引起的。目录没有被正确删除是由使用 exec() 命令的代码引起的,该命令将删除命令传递给了 shell。原来我使用的是区分大小写的 GitHub Bash shell,与不区分大小写的标准 Windows cmd.exe 不同。区分大小写导致外壳无法识别应删除的路径,因此无法删除它,从而导致捆绑过程中出现中断。

100 倍感谢 Rahul 找到有关此问题的先前错误报告!你是大海捞针的英雄!

于 2013-01-25T15:54:05.430 回答