2017-02-08 5 views
0

우리는 스크립트 및 스타일 번들을 사용하여 리소스를 축소하고 번들합니다. 또한 StyleTransformer를 사용하여 .less 파일을 .css 파일로 변환합니다.BundleTable.EnableOptimizations = false 일 때 StyleTransformer가 실행되지 않습니다.

coreCsss.Transforms.Add(new StyleTransformer()); 
coreCss.Include("~/Content/Common/Styles/core.less"); 

또한 비 디버그 구성을 빌드 할 때만 최적화를 활성화하는 프로세서 지시문이 있습니다.

#if DEBUG 
      BundleTable.EnableOptimizations = false; 
#else 
      BundleTable.EnableOptimizations = true; 
#endif 

위의 의도는 개발 중에 패키징되지 않고 해제되지 않은 javascript를보다 쉽게 ​​디버깅 할 수 있도록하기위한 것입니다.

우리가 알아 차린 문제점은 EnableOptimizations을 사용하지 않으면, 우리의 .less 파일이 변환되지 않고 raw .less가 브라우저에 제공되고 있다는 것입니다. 어쨌든 소형화 및 번들링을 비활성화하지만 변환을 가능하게 할 수 있습니까? 나는 이것이 꽤 일반적인 시나리오라고 생각할 것이다.

답변

0

먼저 코드는 완전히 필요하지 않습니다. 상자 밖에서는 EnableOptimizations은 개발 중에는 거짓이고 프로덕션에서는 true입니다. 당신이 그것을 무언가로 설정해야 할 필요가있는 유일한 이유는 개발에서 번들링을 실제로 원한다면 (디폴트로 비활성화되어있는 경우). StyleTransformer가 번들링 프로세스에 따라 다르다면, 번들링은 모든 것이 든 그렇지 않은 것이 든 상관 없습니다. 그렇다면 개발에 활성화되어야하는지, 아니면 가지고있는 것이 무엇인지 정확히 알 수 있습니다.

개인적으로 Web Essentials Visual Studio Extension과 같은 것을 사용하는 것이 좋습니다 (특히 will auto-compile LESS into CSS on save). 그런 다음 LESS로 작업하고 CSS 버전을 참조하기 만하면됩니다. 비슷한 기능을 가진 다른 확장 기능이있을 것입니다. 꿀풀 같은 것을 만들기 위해 빌드 작업을 설정할 수도 있지만 좀 더 복잡합니다.