2013-01-24 3 views
5

Help!Win7에서 Meteor 어플리케이션을 번들하는 동안 ENOTEMPTY 및 EPERM 예외가 있습니까? : (

저는 약 2 개월 동안 Meteor에서 작업 해 왔으며 OSX 가정 환경에서 모든 것이 원활하게 진행되고 있습니다.하지만 최근에는 직장에서 Windows 7 환경으로 일부 코드를 가져 왔지만, Meteor는 Windows에서도 똑같은 동작을하지 않습니다.

특히 코드 번들링은 계속 골칫거리입니다. 이전의 .meteor/local 디렉토리를 플러시하는 대신 코드베이스를 변경하고 응용 프로그램을 rebundling하는 것은 barfing입니다. 서버 콘솔에서 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. 

이 문제를 해결하는 방법에 어떤 아이디어? 내가 윈도우 7 얼티밋, SP1, 64에 유성 0.5.4을 사용하고 있습니다.

편집 : 코드에 오류가있을 때마다 이러한 오류가 발생한다고 언급해야합니다. OSX 환경에서 오류가 발생해도 코드는 계속 컴파일되고 크기가 축소되고 번들되며 페이지가 렌더링되지 않고 Chrome 콘솔에서 다양한 자바 오류가 발생하여 디버깅해야합니다. 내 Win7 환경에서 똑같은 일을하고 있지만 크롬에서 디버깅 할 수있는 준 깨진 앱을 컴파일하는 대신 정지 중입니다. 어느 쪽의 경우에도, 거기에 자바 스크립트 코드에 오류가 있습니다 (그 정도는 알고 있습니다). 그러나 OSX에서는 여전히 번들로 제공되며 디버깅을 진행할 수 있습니다. Win7에서 이러한 ENOTEMPTY 및 EPERM 예외로 인해 디버깅 단계에 도달 할 수 없습니다 ...

편집 : 그리고 네, 전체 프로젝트 디렉터리에 대한 사용 권한을 모든 사용자에게 부여하여 시도했습니다. . 불행히도, 그 트릭을하지 않았다.

+1

첫 번째 오류는/build/server 디렉토리가 삭제하려고 할 때 비어 있지 않다는 것입니다. 이 시점에서 디버거를 설정하고 디렉토리를 살펴 보았습니까? 아직 어떤 파일이 있습니까? – Rahul

+0

! Rahul! server.js와 .bundle_version.txt 파일뿐만 아니라 모든 node_modules도 여전히 있습니다. 또한/build/server 대신 .build.build/server 디렉토리를 만드는 것으로 보입니다. 다소 이상하게 보입니다. O_o – AbigailW

+0

아, 흠 .. ENOTEMPTY 오류에서 .build.build/server에는 node_modules 만 있고 다른 두 파일은 없습니다. – AbigailW

답변

2

그래, Tom Wijsman의 도움으로 문제를 추적 할 수있었습니다. 짧은 대답은 GitHub Bash 쉘이라는 것입니다.

ENOTEMPTY 및 EPERM은 번들링 프로세스 중에 디렉토리가 올바르게 삭제되지 않기 때문에 발생합니다. 디렉토리가 올바르게 삭제되지 않는 것은 delete 명령을 쉘에 전달한 exec() 명령을 사용하는 코드 때문입니다. 나는 GitHub Bash 셸을 사용하고 있었다.이 셸은 대소 문자를 구분하지 않는 표준 Windows cmd.exe와 달리 대소 문자를 구분합니다. 대소 문자를 구분하면 셸이 제거해야하는 경로를 인식하지 못하게되어 제거하지 않으므로 번들 프로세스 중에 중단 될 수 있습니다.

이 문제에 대한 이전 버그 보고서를 찾은 Rahul에게 감사드립니다. 넌 건초 더미에서 바늘을 발견 한 영웅 이었어!

+3

당신은 문제를 일으킨 원인을 설명했습니다 -하지만 어떻게 실제로 그것을 고칠 수 있습니까 ??? – nkoren

+0

감사합니다 @AbigailW, 올바른 방향으로 나를 안내합니다. OSX에서 패키지가 잘 작동했지만 Windows에서는 작동하지 않습니다. 나는 ConEmu + GitBash를 Windows에서 사용하고 있으며 대소 문자를 구별하여이 문제를 해결했습니다! 관련 package.js를 살펴보고 거기에 대소 문자를 구분하지 않는 경로를 수정하면 문제가 해결되었습니다 !!!! –

+0

Windows에서 Meteor를 사용할 때 git 관련 명령 이외의 다른 명령은 git bash를 사용하여 포기해야했습니다. 현재 기본 명령 창을 사용하고 있습니다. – Kildareflare

2

Windows 8에서 정확한 문제가 발생했습니다. McAfee 바이러스 백신 (실시간 검색)을 끄기 만하면 유성 cmd가 실행되는 동안 해결되었습니다.

+0

내 경우에는 카스퍼 스키와 똑같습니다! –

3

Win7. 작동시키기위한 두 단계.

1 ) MongoDB를부터 DB 잠금을 삭제 C : \ 사용자 ** USERNAME ** \ leaderboard.meteor \ 로컬 \ DB를 mongod.lock

2) 프로젝트 닫기 에있는 파일을 가리키는 모든 열기 편집자 C : \ Users ** USERNAME ** \ leaderboard.열린 파일 핸들이 중단 보인다 클라이언트 \ 응용 프로그램 leaderboard.js 내 경우

\ \ 로컬 \ 빌드 \ 프로그램 유성 나는 그것이 종료해야하는 leaderboard.js 을 편집 열려 편집기를 유지했다.

+0

제 편집자를 죽이면 내 문제가 해결되었습니다. –

관련 문제