2.x로 업그레이드하는 대신 Nuget을 jQuery 1.9.x / 1.x 경로에 유지할 수 있습니까?


86

대부분의 사람들과 마찬가지로 jQuery Nuget 패키지 를 사용하여 최신 상태를 유지하고 있습니다.

그러나 jQuery 2.0이 출시되면서 jQuery 1.9.1을 2.0으로 업그레이드하라는 메시지가 표시됩니다. 현재로서는 1.9.x 및 jQuery Migrate를 고수하는 '고대'버전의 브라우저를 사용하는 사이트 방문자가 충분합니다 .

패키지 (jQuery 또는 기타)의 업데이트를 확인할 때 Nuget에 특정 버전 (1.9.x)을 고수하도록 지시하는 방법이 있습니까?

Visual Studio 2010/2012 확장을 사용하고 있지만이 문제를 해결하기 위해 VS 내에서 명령 줄 인터페이스를 사용해야하는 경우 확실히 할 것입니다.

참고 : 내 마음 속에있는 한 가지는 그들이 업데이트를 망쳤다는 것입니다. jQuery 1.9.x와 2.0.x / 2.x는 상당히 다르기 때문에 대신 jQuery 2 (.0.x | .x) 패키지를 만들어야하는 것 같습니다.

물론 실제로 2.x로 업데이트하려는 사람들은 그것에 대해 알고 설치하려는 패키지를 전환해야합니다. 그러나 주요 변경 사항이 포함되어 있다는 점을 감안할 때 더 좋을까요?


2
1.10.x가 나왔기 때문에 좀 더 명확하게 제목을 업데이트했습니다.
James Skemp 2013 년

2
단일 nuget 패키지를 유지하고 있으므로 두 jQuery 버전을 모두 추가하면 좋을 것이므로 단일 nuget 패키지에 1.x 및 2.x 분기를 모두 포함하고 원하는 항목을 참조 할 수 있습니다.
John

@John-나는 ... 그 아이디어가 정말 마음에 듭니다. 패키지가 실제로 특정 버전에 대한 참조를 업데이트하는 것과는 다릅니다. 내가 생각할 수있는 유일한 것은 실제로 2.x 또는 1.x가 필요한 프로젝트입니까? 그러나 이것이 효과가 있는지 여부는 흥미로울 것입니다. +1
James Skemp 2013-06-28

답변:


117

제 생각에는 이것은 패키지 작성자의 실수입니다. 여러 브라우저에 대한 지원을 제거하는 업데이트는 별도의 버전 2 너겟 패키지로 만들어 져야하며 그에 따라 중요한 면책 조항과 함께 광고되어야합니다. 1.9 라이브러리는 레거시가 아니며 향후 추가 업데이트를 받게됩니다. 나는 패키지 작성자와 연락을 취했으며 답장을 받으면 더 많이 쓸 것입니다.

그 동안에서 다음 구문을 사용하여 패키지 버전을 제한 할 수 있습니다 packages.config.

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />

여기에 버전 제약에 대한 자세한 정보가 있습니다.

http://docs.nuget.org/docs/reference/Versioning

구성을 변경 한 후 업데이트는 jQuery 패키지를 2.0 릴리스로 업그레이드하지 않아야합니다. 과거에 UI 패키지 관리자가 allowedVersions속성 ( https://nuget.codeplex.com/workitem/1891 )을 존중하지 않는 문제가 있었으므로이 문제가 발생 하면 명령 줄을 사용해야 할 수 있습니다.

그러나 패키지 피드가 이제 2.0+ 트랙에 있으므로 1.9 브랜치가 업데이트 될 때 발생하는 문제를 해결하는 방법은 없습니다. '레거시'1.x 버전을 지원하기 위해 특별히 작성된 새 너겟 패키지로 전환하거나 매번 수동으로 스크립트를 복사해야한다고 가정합니다.

어쨌든 자세한 내용을 알면 업데이트하겠습니다.

편집하다:

패키지 작성자는 1.x 2.x 경로가 모두 향후 지원 될 것이라고 밝혔 습니다. 즉, 패키지 피드에 분할되는 대신 병렬 버전이 포함될 것입니다. 내가 볼 수있는 한 해결책은 2.x 버전으로의 업데이트를 방지하기 위해 패키지 구성 수준에서 버전 제약 조건을 사용하는 것입니다. 예 :

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />

(최소 및 최대 버전을 모두 지정 allowedVersions하면 2.x 버전으로 전환 할 위험없이 업데이트 할 수 있어야합니다. 그런데 오른쪽 괄호가 이상해 보이지만 정확합니다. '버전 2 미만'을 의미합니다.)


Dave, 패키지 작성자에게 문의 해 주셔서 감사합니다. 나는 이것이 가능한 문제라는 것에 대해 jQuery 2.0 발표 블로그 포스트에 댓글을 올렸다. 어떤 이유로 jQuery가 jQuery에 의해 유지 관리되고 있다고 생각했으며 jQuery Migrate를 대신하여 처리했습니다. 더 파야 했어. +1
James Skemp 2013

@JamesSkemp-네, 저를 여기로 가져온 발표 게시물에 대한 귀하의 질문이었습니다. :) 질문을 제기 해 주셔서 감사합니다. 문제에 관심을 가져 오 셨다면 제 자신이 잡혔을 것입니다. 전체 상황은 실제로 필요한 것보다 다소 복잡하지만 업데이트 된 답변이 도움이되기를 바랍니다. 버전 관리를 더 쉽게 처리 할 수있는 방법을 찾으면 추가 정보를 추가하겠습니다.
Dave R.

2
NuGet UI에는 packages.config에서 업데이트를 허용하지 않더라도 jQuery 2.0으로 업데이트하라는 메시지를 표시 하는 버그 가 있습니다. jQuery 2.0이 NuGet 2.5에 너무 가깝게 나왔다는 것은 아이러니합니다. 버전 2.5에는 모두 업데이트 버튼이 있는데,이 버그가 아니었다면 좋을 것입니다.
Edward Brey 2013

2
이제 jquery11.x 브랜치를 추적 하는 패키지가 nuget에 있음을 확인했습니다.
Chris J

1
UI 업데이트가 아닌 콘솔 업데이트 만 작동합니다 (allowedVersions 추가 후). 업데이트를 시도 할 때 UI가 프로젝트 선택을 허용하지
않음

19

버전을 지정하는 방법은 무엇입니까?

PM> Install-Package jQuery-버전 1.9.1

참조 : http://nuget.org/packages/jQuery/1.9.1


내가 물은 관련 질문 : stackoverflow.com/q/16126338/11912 간단히 말해 작동하지만 klunky입니다. 그리고 블라인드 업데이트는 그것을 깨뜨립니다.
James Skemp 2013-04-22

실제로 jQuery 버전 관리 snafu 이후에 콘솔 방식을 더 많이 사용하기 시작했습니다. 최선의 해결책은 아니지만 +1.
James Skemp 2013-06-28

이미 실수로 2.x로 업그레이드 한 후 1.9로 돌아가서 2.x 로의 업그레이드를 방지하려면 승인 된 답변에서 제한을 추가하기 전 / 후에 이와 같이 수동으로 다운 그레이드해야하기 때문입니다.
Pluc

8

Nuget에는 이제 1.x 브랜치 만 추적 하는 jquery1 패키지있으므로이 패키지 의 핵심 jQuery 패키지를 교체 할 수 있습니다.


잘 찾았습니다. 페이지의 가독성을 높이려면 약간의 작업이 필요하지만 여러 버전의 jQuery를 사용할 수있는 유연성이 마음에 듭니다.
James Skemp 2013 년

이 질문에 대한 John의 의견으로 돌아가지만; 1.x와 2.x가 모두 포함 된 패키지가 있고 각각의 현재 버전이 포함되어 있으면 좋을 것입니다.
James Skemp 2013 년

2
그러나 jQuery 종속성이있는 다른 라이브러리가있는 경우 항상 거기에있을 것이며 기껏해야 jQuery 2.0과 함께 사용할 수 있습니다. 종속 jQuery 1.x 만 원하는 경우 이것은 작동하지 않으며 Dave R의 답변을 확인해야합니다.
RockResolve

4

@TeYoU를 위해 위에서 두 가지 솔루션을 결합했습니다.

먼저 패키지 관리자 콘솔에서 패키지를 설치했습니다.

도구 메뉴-> 라이브러리 패키지 관리자-> 패키지 관리자 콘솔

PM> Install-Package jQuery -Version 1.9.1

그런 다음 @Dave R.이 말한 것처럼 packages.config를 편집했습니다.

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />

그런 다음 Nuget Manager를 사용하여 현재 버전 인 1.10.2로 업데이트했으며 매력처럼 작동했습니다.


1
실제로 내가 찾은 첫 번째 버전의 버전을 지정할 필요가 없습니다. 당신은이 버전을 허용 추가하는 경우, 다음 업데이트를 실행, 그것은 ... 당신을 다운 그레이드
마틴
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.