2013-12-08 2 views
1

Meteor에서 html2canvas.js로 스크린 샷을 캡처하는 복잡한 앱을 만들었습니다. 아래 조건을 제외하고는 잘 작동합니다. 1. --debug 옵션없이 서버에 배포되었습니다. 및 2. 클라이언트는 iOS Safari입니다. 배포 코드와 유성에서 디버깅 코드의 차이점은 무엇입니까?

(당신이 html2canvas.js하여 간단한 캡처 응용 프로그램을 만들 경우이 모든 조건에 적합합니다. 그래서 "는 복잡한 응용 프로그램은"앱이 다른 라이브러리가 포함되어 있다는 것을 의미했다.)

필수 무엇입니까 --debug 옵션을 사용하지 않고 --debug 옵션을 사용하는 것의 차이점은 무엇입니까? (결합되거나 분리되거나 uglified 또는 같을 수는 있지만 동일합니다.) 분명히이 현상은 동일하지 않음을 나타냅니다. iOS에서 파일을 결합하여 코드가 간섭 할 가능성이 있습니까?

어떻게이 문제를 효율적으로 디버깅 할 수 있습니까?

[업데이트] --debug 옵션으로 배포하고 --debug없이 다시 배포하면 문제가 사라졌습니다. iOS의 브라우저 캐시 정책과 관련이있을 수 있습니다.

+0

Meteor는 프로덕션 용도로 코드에서 minifier를 실행합니다. 미니 화러는 변수의 이름을 바꿀 때도 있고 외부 라이브러리가 일종의 역동적 인 리플렉션에 의존한다면 깨질 수 있습니다. 이 문제는 여전히 열려 있습니다. 아마도 특정 라이브러리를 가리키고 유성에게 이런 것들을 축소시키지 말라고 말해야합니다. – imslavko

+0

흥미로운 의견을 보내 주셔서 감사합니다. 코드를 검토 할 때주의를 기울일 것입니다. 아직도 내 문제가 다른 것 같습니다. OS 특정 코드가 보이지 않지만 iOS에서만 발생합니다. – Yuji

+0

처음으로 minifier가 좋은 게임을하는 것은 아니지만, 확실히 이것에 대한 수정이되어야합니다. – imslavko

답변

2

디버그 모드에서 코드는 단일 파일로 축소 및 패키지되지 않습니다. 따라서 두 가지 모드, 즉 debugproduction이 있습니다. meteor deploy--debug없이 사용하면 코드 속도가 크게 최적화됩니다. 앱에 휴대 전화가로드되는 데 걸리는 시간을 알 수 있습니다.

앱이 --debug 옵션으로 만 작동하는 경우 앱에 일종의 자바 스크립트 오류가 있음을 의미합니다.

앱을 축소하면 모든 파일이 하나의 파일로 연결됩니다. 코드에 단일 오류가있는 경우 나머지 코드는 실행되지 않습니다. --debug 모드에서는 오류가 계속 발생하지만 파일이 분리되어 있기 때문에 다른 파일은 오류의 영향을받지 않습니다.

크롬/사파리의 자바 스크립트 콘솔을 사용하여 앱을 배포하기 전에 오류를 찾고 수정해야합니다. Mac을 사용하는 경우 가장 쉬운 방법은 Cmd + Alt + J.

입니다. 일반적으로 유성에서는 다운로드하기 전에 컬렉션에 액세스해야합니다. doc.datedoc을 얻으려는 것과 같은 것이 아직 정의되지 않았으므로 null 참조 예외가 발생합니다.

+0

답장을 보내 주셔서 감사합니다. – Yuji

관련 문제