2013-12-21 2 views
3

다트와 그 의존 관리자 pub을 배우고 있으며 "나무를 통해 숲"을 보면서 힘든 시간을 보냅니다.dart2js를 통한 다트 패키지 관리

내 프로젝트에 Polymer.dart을 사용하고 싶습니다. 그래서, 내 프로젝트 루트에, 나는 pubspec.yaml 다음 생성 : 나는 다음 pub의 repo에 가서 내가 지정한 한 browserpolymer 종속성을 인출하는 pub get을 실행

name: test_dart 
description: A sample web application 
dependencies: 
    browser: any 
    polymer: ">=0.9.0 <0.10.0" 

./내 다트 웹 응용 프로그램 (myapp.dart), 윌 참조 다양한 고분자 및 browser 종류의 코딩을 시작하기 이제

MyDartProject/ 
    pubspec.yaml 
    myapp.dart 
    packages/ 
     browser/ 
      ... 
     ...all the packages that ship with Polymer 

: 그런 다음 지금의 모습 프로젝트를 의미 내 프로젝트 루트에 packages 디렉토리를 생성 함수/etc. 소스 코드에서.

내가 모두 끝나면 myapp.js이라는 JavaScript 파일을 만들고 싶습니다.

dart2js --out=myapp.js --package-root=??? myapp.dart 

가 어떻게이 buildpath 모든 브라우저 & 폴리머 패키지를 포함 않습니다

dart2js docs에 따르면, 내가 좋아하는 뭔가를 실행해야합니까?

답변

4

지금은 "술집 빌드"옵션이 있습니다 참조하십시오.

http://pub.dartlang.org/doc/pub-build.html

사용 펍 빌드 당신이 당신의 웹 응용 프로그램을 배포 할 준비가 된 것입니다. pub 빌드를 실행하면 현재 패키지의 자산과 의 종속성을 모두 생성하여 빌드라는 새 디렉토리에 저장합니다. 빌드 디렉토리가 이미 존재하는 경우

$ cd ~/dart/helloworld 
$ pub build 
Building helloworld...... 
Built 5 files! 

, 술집 빌드를 삭제하고 다시 만듭니다.

여기에있는 모든 작업을 수행해야합니다. IDE에서 pubspec.yaml 파일을 마우스 오른쪽 버튼으로 클릭하고 "펍 빌드"를 선택하여 시작할 수도 있습니다

편집 : zoechi의 답변도 링크에 표시되어 있습니다.

+0

감사합니다 @Paul Collingwood (+1) - 빠른 후속 조치. 나는 다트 편집자 (Dart Editor)에 있는데 편집자와 함께 샘플 프로그램으로 제공되는'해바라기'앱에서'Pub Build'를 실행했다. 프로젝트 루트에'packages' 디렉토리,'math.png','sunflower.css','sunflower.dart.js','sunflower.html' 디렉토리를 포함하는'build' 디렉토리를 만들었습니다. ** 웹 서버에 무엇을 넣을 까? ** 모든 것을 서버에 두어야 할까, 아니면'packages' 디렉토리를 남길 수 있습니까? (또는'sunflower.dart.js'가'packages'에 컴파일 된 코드를 참조하여 서버에 있어야합니다)? 다시 한 번 감사드립니다! – IAmYourFaja

+2

모든 것을 서버에 빌드합니다. 그것은 자체 포함되어 있습니다. packages 디렉토리의 내용은 여전히 ​​참조되므로 필요할 수도 있습니다. –

1

MyDartProject 디렉토리에서 dart2js를 실행하면 --package-root 매개 변수를 제공 할 필요가 없습니다.

또 다른 방법은 pub build입니다. Polymer를 사용하는 경우 transformers 섹션을 추가해야합니다.

+0

굉장한 답변 및 링크 @zoechi (+1) - Paul Collingwood의 답변 아래 내 의견을 참조하십시오. – IAmYourFaja

+0

또한 @zoechi * 트랜스포머 * 란 무엇입니까?!? [pubspec' 명세] (http://pub.dartlang.org/doc/pubspec.html)에 나열되어 있지 않습니다. 다시 한 번 감사드립니다! – IAmYourFaja

+1

트랜스포머는 빌드 프로세스에 통합 될 수있는 프로그램입니다 (Dart에서 직접 작성하고 pubspec.yaml을 사용하여 추가 할 수 있음). Polymer 변압기는 Dart에서 JS 로의 변형에 대해 Polymer 고유의 부분을 수행합니다. 여기에 정확히 어떤 단계가 포함되어 있는지는 알 수 없습니다. [sass] (http://pub.dartlang.org/packages/sass)는 SASS 소스 파일을 CSS 파일로 변환하기 위해 SASS를 시작하는 또 다른 예입니다. –