2014-01-14 2 views
2

저는 다트를 처음 사용하고 Windows에서 다트 편집기를 사용하고 있습니다.Dart2js는 작은 코드로도 큰 javascript 파일을 생성합니까?

나는 컴파일 된 자바 스크립트가 거대하다는 것을 알아 차 렸기 때문에 그 원인을 확인하기 위해 점점 더 많은 코드를 제거했지만, 나는 어디에도 갈 수 없다고 생각한다. 지금 내 프로그램은 다음과 같습니다.

import 'dart:html'; 

void main() { 
    var video = querySelector("#vid"); 
} 

그건 사실입니다. 나는 하나의 지시 외에 모든 것을 제거했다.

그리고이 생성 자바 스크립트 (가 인라인으로 적합하지 않습니다)입니다 :

https://gist.github.com/DSteve595/504887a19a05614bcc94

내가 뭘 잘못입니까? 이 프로그램은 실제로 비어 있습니다!

답변

5

요지에서 링크 된 파일은 48k입니다. --minify 옵션을 사용하여 dart2js를 실행하면 크기를 상당히 줄일 수 있습니다.

코드는 간단 할 수 있지만 dart2js는 기본적으로 많은 수의 라이브러리를로드해야하며 가져 오는 dart:html 라이브러리도로드해야합니다. 관점에서 볼 때 자바 스크립트로 프로그램을 작성하고 모든 jQuery를 가져온 경우 파일의 크기는 얼마나 될 것이라고 생각하십니까?

https://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools-dart2js.html에서 dart2js에 대해 더 자세히 읽을 수 있습니다.

+0

너도 알다시피, 나는 JQuery가 더 이상 수입되지 않는다고 생각조차하지 않았다. 어쩌면 이것은별로 나쁘지 않을 것이다. –

3

dart2js는 JavaScript에서 다트 동작을 에뮬레이트하기 위해 상당한 양의 코드를 생성해야합니다. 형식, 오류 검사, 수학 등은 모두 자바 스크립트에서 에뮬레이트되어야합니다. 그 결과 많은 여분의 코드가 발생하고 사소한 "Hello World"앱이 엄청나게 커질 것입니다.

전달 된 JavaScript의 크기를 줄이거 나 gzip으로 줄이면됩니다.

dart2js는 시간이 지남에 따라 개선되고 있지만 JavaScript에서는 Dart 동작을 에뮬레이트하는 데 항상 크기 비용이 들게됩니다.

+0

좋아요, 그래서 이것의 대부분은 단순한 보일러 판입니다. 제거 할 수 없습니까? Dart Editor에 포함되어 있던 frogc 컴파일러는 어떨까요? 그것으로 인해 생성 된 코드가 훨씬 더 컴팩트 한 것처럼 보입니다. –

+1

오른쪽. 개구리는 지원되지 않는 오래된 컴파일러입니다. 사용하지 않을 것입니다. 외관상으로는 개구리는 다트 (Dart) 언어 전체를 커버하지 못했기 때문에 그것이 더 작은 이유 일 수 있습니다. –

+0

의미가 있습니다. 감사합니다. –

관련 문제