2017-12-19 22 views
0

나는 스크립트과 같이 묶을 때 :왜 ASP.Net 번들에는 일치하는 파일의 여러 버전이 포함되어 있습니까? 이걸 멈출 수 있을까요?

bundles.Add(new ScriptBundle("~/bundles/Product/Details").Include(
     "~/Scripts/external/XXXXConfig-{version}.js", 
     "~/Scripts/external/Views/Product/ProductFavorite-{version}.js")); 

내 기대는 그 디렉토리에 두 개의 파일이 있다면 :

  1. XXXXConfig-1.0.0.js
  2. XXXXConfig - 1.0. 1.js

최신 버전 인 XXXXConfig-1.0.1.js 만 포함된다는 것입니다. 대신에 모두 번들로 묶여 시스템이 눈부시게 실패합니다.

내 기대치는 here 및 기타 출처에서 제공됩니다. 이 기대가 잘못 되었습니까? 어쨌든 최신 버전 만 포함되도록 만들 수있는 방법이 있습니까?

답변

1

예, 귀하의 기대가 잘못되었습니다. {version} 와일드 카드는 최신 버전이 아니라 모든 버전의 자리 표시 자로 사용됩니다. 매 번 번들 코드를 변경하지 않고도 NuGet 패키지를 업데이트 할 수 있습니다.

{version} 와일드 카드가하는 유일한 스마트 건 (있는 경우)가 릴리스 및 디버그 없음 min으로 min와 파일을 선택한다는 것입니다. 그 외에는 다른 어떤 와일드 카드 일뿐입니다.

최신 릴리스를 선택하는 기본 제공 기능을 알지 못합니다. 원한다면 직접 프로그래밍해야합니다. 누군가가 이미 그런 일을했는지 ​​확인하기 위해 검색 할 수 있습니다. 하지만 왜 당신이 폴더에 둘 이상의 버전이 존재하는지 궁금합니다.

편집 :, 내가 MSDN that you linked to 잘 설명 생각하지만, 여기에 예입니다 귀하의 요청으로 min 기능을 정교 :

하자이 폴더는 두 개의 파일 SEMSConfig-1.0.0.js을 가지고 말하고 SEMSConfig-1.0.0.min.js. 프로젝트를 디버그 모드로 실행하면 SEMSConfig-1.0.0.js 파일이 사용됩니다. 프로젝트를 릴리즈 모드에서 실행 (또는 게시)하면 SEMSConfig-1.0.0.min.js 파일이 사용됩니다.

+0

"최소"접근 방식에 대해 자세히 설명해 주시겠습니까? –

+0

내 대답은 편집을 참조하십시오. –

+0

하지만 XXXConfig-1.0.0.js와 XXXConfig-1.0.1.js 모두를 축소 할 수 있습니까? –