[import] @import를 사용하여 sass에서 전체 디렉토리를 가져올 수 있습니까?

다음과 같이 스타일 시트를 SASS 부분으로 모듈화하고 있습니다.

@import partials/header
@import partials/viewport
@import partials/footer
@import partials/forms
@import partials/list_container
@import partials/info_container
@import partials/notifications
@import partials/queues

@import compass 또는 무언가와 같은 전체 부분 디렉토리 (SAS-partials로 가득 찬 디렉토리)를 포함시키는 방법이 있습니까?



답변

Rails 프로젝트에서 Sass를 사용하는 경우, sass-rails gem https://github.com/rails/sass-rails 는 glob 가져 오기를 제공합니다.

@import "foo/*"     // import all the files in the foo folder
@import "bar/**/*"  // import all the files in the bar tree

“디렉토리를 가져올 경우 가져 오기 순서를 어떻게 결정할 수 있습니까? 새로운 수준의 복잡성을 도입 할 수있는 방법은 없습니다.”

일부는 파일을 디렉토리로 구성하면 복잡성을 줄일 수 있다고 주장합니다.

우리 조직의 프로젝트는 다소 복잡한 앱입니다. 17 개의 디렉토리에 119 개의 Sass 파일이 있습니다. 이것은 대략 우리의 견해에 해당하며 주로 조정에 사용되며 무거운 리프트는 맞춤형 프레임 워크로 처리됩니다. 나에게 가져온 디렉토리의 몇 줄은 가져온 파일 이름 119 줄보다 덜 복잡합니다.

로드 순서를 해결하기 위해 먼저로드해야하는 파일 (믹스 인, 변수 등)을 초기로드 디렉토리에 배치합니다. 그렇지 않으면, 우리가 올바르게 일을한다면,로드 순서는 중요하지 않습니다.


답변

이 기능은 Sass에 포함되지 않습니다. 주요한 이유 중 하나는 수입 주문입니다. CSS에서 마지막으로 가져온 파일은 앞에서 언급 한 스타일을 무시할 수 있습니다. 디렉토리를 가져올 경우 가져 오기 순서를 어떻게 확인할 수 있습니까? 새로운 수준의 복잡성을 도입하지 않는 방법은 없습니다. 가져 오기 목록을 유지하면 (예제에서와 같이) 가져 오기 순서가 명시 적입니다. 다른 파일에 정의 된 스타일을 자신있게 재정의하거나 한 파일에 믹스 인을 작성하고 다른 파일에 사용하려는 경우에 필수적입니다.

더 철저한 논의를 원하시면 여기에서 닫힌 기능 요청을 보십시오.


답변

sass-globbing 프로젝트를 확인하십시오 .


답변

__partials__.scss같은 디렉토리에 이름이 지정된 파일을 만듭니다.partials

|- __partials__.scss
|- /partials
   |- __header__.scss
   |- __viewport__.scss
   |- ....

에서가 __partials__.scss, 나는이 쓴 :

@import "partials/header";
@import "partials/viewport";
@import "partials/footer";
@import "partials/forms";
....

따라서 전체를 가져 오려면을 partials쓰십시오 @import "partials". 그들 중 하나를 가져 오기를 원한다면을 쓸 수도 있습니다 @import "partials/header".


답변

다음과 같이 해당 파일의 모든 파일을 가져오고 가져 오려는 폴더에 sass 파일을 배치하여 약간의 해결 방법을 사용할 수 있습니다.

파일 경로 : main / current / _current.scss

@import "placeholders";
@import "colors";

그리고 다음 디렉토리 수준 파일에서는 그 디렉토리에서 모든 파일을 가져온 파일에 대해 가져 오기를 사용합니다.

파일 경로 : main / main.scss

@import "EricMeyerResetCSSv20";
@import "clearfix";
@import "current";

그렇게하면 전체 디렉토리를 가져 오는 것처럼 동일한 수의 파일이 있습니다. 순서에 유의하십시오. 마지막에 오는 파일은 일치하는 스타일을 무시합니다.


답변

소스 순서유지 하고 싶을 수도 있습니다 .

@import
  'foo',
  'bar';

나는 이것을 선호한다.


답변

http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#import

그렇게 보이지 않습니다.

이러한 파일 중 하나에 항상 다른 파일이 필요한 경우 다른 파일을 가져 와서 최상위 파일 만 가져 오십시오. 그들이 모두 독립형이라면, 지금처럼 계속해야한다고 생각합니다.