2012-02-09 5 views
7

예제 및 상용구 게시를위한 Addy Osmani 및 Thomas Davis에게 (http://backbonetutorials.com/organizing-backbone-using-modules, https://github.com/addyosmani/backbone-aura)을 보내 주신 것에 대해 대단히 감사드립니다.backbone.js 및 requirejs 패키지가있는 웹 응용 프로그램, requirejs optimizer

그들은 시작하는 데 많은 도움이되었습니다.

현재 대형 웹 응용 프로그램을 개발 중입니다. 그래서 나는 주소 관리, 날짜 관리, todos와 같은 많은 구성 요소를 가지고 있습니다. 각 구성 요소는 내 응용 프로그램의 전체 공간을 채 웁니다 (메뉴 막대 제외). 메뉴에서 새 구성 요소를 선택할 때마다 페이지 전환이 필요합니다.

처음에는 위의 튜토리얼에서 사용한 파일 구조 ('views'디렉토리에 대한 모든 뷰를 제공함)를 취했습니다. 그러나 더 많은 구성 요소가 추가됨에 따라 뷰를 하나의 뷰 디렉토리에 넣으면 혼란스러워졌습니다. 서브 디렉토리를 만드는 것조차도 해결책이 될 수 없습니다. 왜냐하면이 파일 구조에서보기가 어떤 모델과 관련되어 있는지 정보를 잃어 버렸기 때문입니다.

그래서 다른 해결책을 찾고 requirejs amd 패키지 (http://requirejs.org/docs/api.html#packages)를 찾았습니다. 동일한 구성 요소 (모델, 컬렉션, 뷰)에 속한 모든 모듈이 하나의 디렉토리에 들어 있으므로 많은 도움이되었습니다. "모델"(및 기타 등등)을 가진 모든 모델을 포스트 픽스하기 때문에, 나를 위해 충분히 깨끗한 것.

질문 : 전 제작 단계에 있습니다. 생산 배포를 위해 건물 및 연결 작업에 참여하지 않았습니다. 하지만 지금은 requirejs 최적화 도구를 사용하려고합니다. James Burke의 "http://requirejs.org/docs/optimization.html"페이지를 읽었습니다. 그러나 모든 것이 나에게 분명하지는 않습니다.

내가 원하는 것은 다음과 같습니다.이 패키지 디렉토리가 있습니다. 하나의 패키지 디렉토리에있는 모든 amd 모듈 (뷰, 모델, 컬렉션)은 하나의 파일로 연결되어야하지만, 이들 외부 패키지 의존성이 처음부터 별도로로드되기 때문에 의존성을 포함하면 안됩니다.

누가 이미이 단계를 밟았으며 몇 가지 힌트를 줄 수있는 동일하거나 유사한 요구 사항을 가진 사람이 있습니까?

덕분에 많은
볼프강

+0

방금 ​​도움이 될만한 다른 사람들에게 도움이되는 오픈 소스 툴킷을 방금 출시했습니다. 그것은 당신에게 작업 요구 사항 백본 애플 리케이션을 상자 밖으로 제공하는 많은 오픈 소스 도구의 구성입니다. dev 웹 서버, jasmine 단일 브라우저 테스트 러너, jasmine js-test-driver 멀티 브라우저 테스트 러너, JavaScript 및 CSS의 병합/축소 기능을 제공합니다. 또한 프로덕션 디버깅을 위해 응용 프로그램의 비공식 버전을 출력하고 핸들 바 템플릿을 사전 컴파일하며 i18n을 지원합니다. 그냥 작동합니다. http://github.com/davidjnelson/agilejs – davidjnelson

답변

8
당신은 boilerplates 이러한 몇 가지를 살펴보고 그들이 도움이 있는지 확인할 수 있습니다

...

https://github.com/jcreamer898/RequireJS-Backbone-Starter
https://github.com/david0178418/BackboneJS-AMD-Boilerplate
https://github.com/swbiggart/node-express-requirejs-backbone

몇에게 그 중 어떻게 작동하는지 보여주기 위해 스크립트를 작성했습니다.

+0

감사합니다. 사용 된 상용구와 그 이유는 무엇입니까? –

+0

필자는 첫 번째 글을 썼습니다.이 스크립트에는 백본과 언더 코어의 실제 AMD 포크뿐만 아니라 빌드 스크립트가 있으므로 두 번째로 사용하는 로더를 사용할 필요가 없습니다. 세 번째는 노드를 서버로 사용하는 예제입니다. – jcreamer898

+0

AMD 포크에 대한 링크를 추가 할 수 있습니까? 나는 그것을 발견 할 수 없다. – abstraktor