AngularJS 폴더 구조 [닫힘]


186

확장 가능한 대규모 AngularJS 응용 프로그램의 폴더 구조를 어떻게 레이아웃합니까?


답변:


251

여기에 이미지 설명을 입력하십시오

유형별 정렬

왼쪽에는 유형별로 앱이 ​​구성되어 있습니다. 작은 응용 프로그램에는 나쁘지 않지만 여기에서도 원하는 것을 찾기가 더 어려워지는 것을 볼 수 있습니다. 특정보기와 해당 컨트롤러를 찾으려면 다른 폴더에 있습니다. 코드를 구성하는 다른 방법이 확실하지 않은 경우 여기에서 시작하는 것이 좋습니다. 기능별 구조로 오른쪽의 기술로 쉽게 전환 할 수 있습니다.

기능별 정렬 (권장)

오른쪽에는 프로젝트가 기능별로 구성되어 있습니다. 모든 레이아웃보기 및 컨트롤러는 레이아웃 폴더로 이동하고 관리 내용은 관리 폴더로 이동하며 모든 영역에서 사용되는 서비스는 서비스 폴더로 이동합니다. 여기서 아이디어는 기능을 작동시키는 코드를 찾을 때 한곳에 있다는 것입니다. 서비스는 많은 기능을 "서비스"하므로 약간 다릅니다. 관리하기가 훨씬 쉬워지면서 앱이 구체화되기 시작하면이 기능이 마음에 듭니다.

잘 작성된 블로그 게시물 : http://www.johnpapa.net/angular-growth-structure/

앱 예 : https://github.com/angular-app/angular-app


22
질문을 게시 한 직후 자신의 질문에 대답하고 있습니까?
Jakub

34
@Jakub 질문을 만들 때 "위키에 기여하는 자신의 질문에 대답"이라는 옵션이 있습니다.
마이클 J. 칼 킨스

3
@MichaelCalkins, 나는 아이디어를 좋아한다. 방금 앵귤러에 관한 YouTube YouTube도 확인했습니다.
Ronnie

5
@Ronnie 나는 이것이 AngularJS에게 가장 어려운 학습 곡선 단계 중 하나라는 것을 기억하므로 사람들이 도움이되기를 바랍니다. 나는 블로그를 읽은 후 10 가지 다른 레이아웃을 겪었다 고 생각합니다.
마이클 J. 칼 킨스

5
다음 은 커뮤니티 중심의 angularJS 모범 사례 페이지입니다. 그들의 파일 구조 제안은 두 가지 예에서 두 아이디어의 조합입니다. 기능별로 정렬한다는 아이디어 뒤에 더 있기 때문에 두 번째 예가 더 좋습니다.
John

32

Symfony-PHP, 일부 .NET MVC, 일부 ROR 응용 프로그램을 빌드 한 후 AngularJS 생성기와 함께 Yeoman.io 를 사용하는 것이 가장 좋습니다 .

그것은 가장 대중적이고 일반적인 구조이며 가장 잘 유지됩니다.

그리고 가장 중요한 것은이 구조를 유지함으로써 클라이언트 측 코드를 분리하고 서버 측 기술 (모든 종류의 다른 폴더 구조 및 다른 서버 측 템플릿 엔진)에 대해 무관심하게 만드는 데 도움이됩니다.

그렇게하면 자신과 다른 코드를 쉽게 복제하고 재사용 할 수 있습니다.

여기 grunt build 전입니다 : (yeoman generator를 사용하십시오. 그냥 만들지 마십시오!)

/app
    /scripts
            /controllers
            /directives
            /services
            /filters
            app.js
    /views
    /styles
    /img
    /bower_components
    index.html
bower.json

그리고 grunt build 후 (concat, uglify, rev 등) :

    /scripts
        scripts.min.js (all JS concatenated, minified and grunt-rev)
        vendor.min.js  (all bower components concatenated, minified and grunt-rev)
    /views
    /styles
        mergedAndMinified.css  (grunt-cssmin)
    /images
    index.html  (grunt-htmlmin)

1
경로 코드 블록 구성은 어디에 있어야합니까? angular.module('myApp').config(function($routeProvider) { ... });
스포츠

1
+1 또한 여만이 물건을 넣을 위치를 사용자 지정할 수 있습니다. IMHO는 큰 앱에서 기능 / 모듈별로 정렬하는 것이 더 좋습니다. 다른 앱에서 기능을 더 쉽게 재사용 할 수 있기 때문입니다.
Tivie

30

나는 angularjs 구조에 대한 항목을 좋아 한다

그것은 angularjs 개발자 중 한 사람에 의해 작성되었으므로 좋은 통찰력을 제공해야합니다

발췌문은 다음과 같습니다.

root-app-folder
├── index.html
├── scripts
   ├── controllers
      └── main.js
      └── ...
   ├── directives
      └── myDirective.js
      └── ...
   ├── filters
      └── myFilter.js
      └── ...
   ├── services
      └── myService.js
      └── ...
   ├── vendor
      ├── angular.js
      ├── angular.min.js
      ├── es5-shim.min.js
      └── json3.min.js
   └── app.js
├── styles
   └── ...
└── views
    ├── main.html
    └── ...

1
문제는 폴더 구조에 관한 것이며 링크는 다른 방식으로 흥미롭지 만이 질문에 대한 새로운 것은 없습니다.
JohnC

이것은 보좌관 각 발전기에 의해 사용되는
EdgarT

따라서 스크립트 유형별로 폴더를 구성했습니다.
Tudor

4

프레임 워크의 구조가 아니라 응용 프로그램 기능의 구조로 폴더를 구성하는 방법도 있습니다. 이것을 angular-app 라고하는 github starter Angular / Express 애플리케이션이 있습니다 .


이는 대규모 프로젝트에 더 나은 접근 방식입니다. 슬프게도 우리는 여전히 폴더 구조에 붙어 있습니다 ... 태깅이 더 좋을 것이므로별로 중요하지 않으며 태그에 따라 여러보기를 가질 수 있습니다.
Christophe Roussy

3

나는 세 번째 angularjs 앱을 사용하고 있으며 지금까지 폴더 구조가 향상되었습니다. 나는 지금 내 것을 단순하게 유지한다.

index.html (or .php)
/resources
  /css
  /fonts
  /images
  /js
    /controllers
    /directives
    /filters
    /services
  /partials (views)

단일 앱에 적합하다는 것을 알았습니다. 나는 실제로 여러 프로젝트가 필요한 프로젝트를 아직 보지 못했습니다.


나중에 새 기능을 유지 관리하고 도입하는 데 문제가 있습니다. 폴더 아래에 해당 기능과 관련된 기능 및 구성 요소가있는 폴더 구조를 갖는 것이 항상 좋습니다.
Jaseem Abbas

Angular JS에는 asp.net 웹 프로젝트 또는 Windows 데스크톱 응용 프로그램과 같은 표준 프로젝트 폴더 구조 또는 프로젝트 템플릿이 없다고 생각하고 있습니까?

1
@dotNetBlackBelt 맞습니다. 각도에 관해서는 표준이 없습니다. 이것을 게시 한 후 폴더 설정 방법을 변경했습니다. 내 마지막 프로젝트 나는이 OP의 최고 답변이 무엇인지에 관계없이 갔다
Ronnie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.