2015-01-08 2 views
1

저는 신선한 다트 어플 리케이션이며 'one-hour-codelab'자습서를 사용하고 있습니다. IntellijIDEA 14 및 해당 다트 플러그인을 사용하고 있습니다.다트 빌드 출시 및 디버그 버전

'디버그'를 빌드하면 Dartium에서 정상적으로 작동합니다.

'릴리스'를 빌드 할 때 다트 코드가 자바 스크립트로 변환되지만 HTML 코드는 여전히 다트 소스 파일을 참조합니다.

여기에 몇 가지 해결책이 있다고 가정합니다. 알고 계십니까? 브라우저가있는 다트 VM이있는 경우, 당신은 생성 된 JS보다는 그것을 사용하려는 때문에 르네

답변

2

소스는 의미

덕분에 여전히 .dart 파일을 가리 키도록. 실행중인 브라우저에 Dart VM이 있는지 여부를 확인하고 그렇지 않은 경우 적절한 JS 스크립트로 대체하는 것은 dart.js 스크립트 (브라우저 패키지의 일부)의 작업입니다.

예를 들어, index.html 파일의 소스는 다음과 같습니다 (Dartium 같은) 다트 VM dev에 도구를 사용하여 브라우저에서

<html><body> 
    <script type="application/dart" src="main.dart"></script> 
    <script src="packages/browser/dart.js"></script> 
</body></html> 

가 그 같은 스크립트 태그를 표시합니다. 그러나, 바닐라 크롬이나 다른 브라우저에서, 당신은 개발 도구에서 볼 수있는 HTML은 다음과 같이됩니다 다음 dart.js 스크립트가 해당 JS 파일로 main.dart 스크립트를 대체하고 있기 때문입니다

<html><body> 
    <script type="application/dart" src="http://localhost:8080/main.js">/script> 
    <script src="packages/browser/dart.js"></script> 
</body></html> 

합니다.

이 번역본이 보이지 않으면 index.html 파일에 dart.js 스크립트가 포함되어 있는지 확인하고 pubspec의 종속성에 추가하여 브라우저 패키지를 사용하고 있는지 확인하십시오. YAML 파일 :

dependencies: 
    browser: any 

그것은 pub build 명령에 대한 --mode=release 옵션은 출력에 .dart 파일을 포함하지 않음을 언급하는 것은 가치가 있지만, 다른 모드 (https://www.dartlang.org/tools/pub/cmd/pub-build.html)을 것이다. 야생에있는 브라우저에는 현재 Dart VM이 없기 때문에 pub build은 JS 파일 만 공개한다고 가정합니다. 바닐라 크롬이 다트 VM을 추가하면이 변경 될 수도 있습니다. 그 동안 프로젝트를 빌드 한 후 Dartium에서도 작동하게하려면 .dart 파일을 추가해야합니다. 출력을 빌드하십시오. 특별한 공상을 원한다면 --output-type=dart 플래그 (https://www.dartlang.org/tools/dart2js/#options)가 설정된 dart2js를 사용하여 먼저 다트를 축소 할 수 있습니다.

+0

사실 내 Chrome에서는 Debug와 Release가 모두 작동하며 소스는 게시물의 첫 번째 코드처럼 보입니다. 또한 * .dart 소스가 생성 된 'build'디렉토리에 없으므로 Dartium이 404를 얻게된다는 것을 알았지 만 Chrome이 왜 그것을 얻지 못합니까? 혼란스러워. –

+1

소스는 두 브라우저에서 동일하게 보일 것입니다. 그러나 브라우저에서 사용하는 코드 (열려있는 개발 도구 및 요소 탭)는 .dart 대신 .js 파일을 사용하는 Chrome과 다를 수 있습니다 (따라서 .dart가 없습니다). –

+0

예, 지금 이해하십시오. 하지만 빌드 디렉토리에없는 이유를 모르십니까? –