2013-03-13 3 views
9

예를 들어 컴파일하기 전에 일부 부트 스트랩 LESS 변수를 오버라이드하려고합니다.@import 다음에 부트 스트랩 LESS 변수를 오버라이드합니다.

// Core variables 
@import "variables.less"; 

// Trying to override @white from variables.less 
@white: #de1de1; 

// other bootstrap @imports.... 

위의 코드는 @white를 대체하지 않습니다,하지만 난 variables.less 파일의 끝에 @white를 추가하는 경우, 그것을 잘 작동합니다.

변수는 동일한 파일에서만 덮어 쓸 수 있습니다. 그러나 이것은 나에게 의미가 없어요. 나는 그런 저런 일을 거의하지 않는다고 생각했습니다. 예를 들어 다른 @import 파일 (위 코드에서 생략)은 @white 변수를 사용합니다. 그들이 변수가없는 파일 밖에서 사용할 수 있다면 파일 외부에서 그것을 대체 할 수없는 이유는 무엇입니까?

내 코드를 컴파일하는 데 Less Php 0.3.9를 사용하고 있습니다.

참고 : 이제 @white의 값이 (다소 내 문제를 해결) 변수 - custom.less에서 가져

// Core variables 
@import "variables.less"; 
@import "variables-custom.less"; 

: 난 그냥 다음 코드를 시도했습니다. 그래도 내 원래 코드가 작동하지 않는 이유는 아직 설명하지 않습니다. 그것에 대한 답변을 고맙게 생각합니다.

+2

좋은 대답은 http://stackoverflow.com/questions/15426256/overridelessVariables입니다. – ScottS

답변

3

컴파일 할 가져 오기가 설정된 순서대로 변수를 덮어 씁니다 (사용할 수 있습니다). 예를 들어

:

@import "variables.less"; //@white is set 
@import "styles.less";  //UPDATED @white NOT available 
@import "variables-custom.less"; //Update @white 
@import "styles2.less";  //UPDATED @white available 

그래서, 당신은 variables.less 오히려 변수-custom.less를 사용하지 않을 경우, 당신은 다른 .less의 전을 모두 넣어 있는지 확인 파일 (변수를 제외하고. 물론).

관련 문제