2016-12-18 8 views
0

내 gulpfile ([email protected])의 sass는 많은 오류를보고하며 계속해야합니다. 이와 같은 없습니다 오류 :sass/gulp-sass는 특정 오류 (무효 속성)에 대해 침묵을 지키고 있습니다.

=clearfix() 
    &:after 
     content: "" 
     display: table 
     clear both 

contentdisplay합니다 (믹스 인을 참조) 실제 클래스로 제대로 만들지 만, (나는 결장을 놓친 때문에) clear하지 않습니다. 이것은 구문 오류입니다 (따라서 rareproperty: 42px;은 정상적으로 처리되지 않았습니다). → 여전히 : 오류가 발생하지 않으며 중단이 없습니다.

내 꿀꺽 작업 :

gulp.task('sass', function() { 

    return gulp.src(src.scssMaster) 
     .pipe(plumber()) 
     .pipe(sourcemaps.init()) 
     .pipe( sass({ 
        debugInfo : true, 
        lineNumbers : true, 
        outputStyle: 'expanded' 
       }) 
       .on('error', function(err){ 
        gutil.log(err); // stackoverflow.com/a/30742014/444255 
        this.emit('end'); 
       }) 
      ) 
     .pipe(autoprefixer({ 
      browsers: ['iOS >= 5', 'ie 8', 'Firefox > 2'], 
      cascade: true, 
      remove: true 
     })) 
     .pipe(rename('lznet.css')) 
     .pipe(sourcemaps.write('../maps')) 
     .pipe(gulp.dest(src.cssDir)) 

     .pipe(reload({stream: true})) 
     .on('end',() => gutil.log('sass thing done')); 
}); 

밀레 그라 ❤

답변

1

이 구문 오류 → 아직 : 오류가 볼 수없는, 중단없이.

구문 오류가 아닙니다. 이 예제를 보자

.foo 
    color: blue 
    clear both 

이 다음과 같은 CSS로 컴파일 :

.foo { 
    color: blue; 
} 

그것은 확실히 가 잘못 지정된 clear both 속성의 오류가 자동으로 무시됩니다 것 같습니다. 실제로 일어나고있는 것은 중첩 된 .foo clear both 셀렉터를 정의했다는 것입니다. 그러나 .foo clear both 선택자는 이므로 빈으로 SASS 컴파일러에서 최적화되었습니다. 다른 SASS 예에 무슨 볼 때

이 분명해진다 :

이 다음과 같은 CSS로 컴파일
.foo 
    color: blue 
    clear both 
    color: red 

:

.foo { 
    color: blue; 
} 
.foo clear both { 
    color: red; 
} 

는 이제 .foo clear both 선택이 비어 있지과 CSS 더 이상 컴파일러에 의해 최적화되지 않습니다.

SASS는 HTML 사양에 실제로 clear 또는 both 요소가 없음을 알지 못하거나 신경 쓰지 않습니다. 이것은 기능이 아니기 때문에 버그가 아닙니다 :

  • HTML에서 요소를 추가하거나 제거 할 수 있습니다. 이렇게하면 새 HTML 버전이 표준화 될 때마다 SASS를 변경할 수 있습니다.
  • custom HTML elements을 이미 정의 할 수 있습니다 (이 경우 clearboth은 웹 구성 요소에도 유효한 이름이 아님).
  • CSS (따라서 SASS)는 결코 HTML로만 제한되지 않습니다. use CSS to style XML documents도 가능하며 clear 또는 both과 같은 맞춤 요소를 정의 할 수 있습니다.
+0

뛰어난 답변 –