Автоматическое обновление ссылок на скрипты при обновлении jquery и modernizr с помощью NuGet - PullRequest
3 голосов
/ 19 сентября 2011

Заметив, что проверка на стороне клиента перестала работать, я определил, что ссылки на мои html-скрипты для jquery и modernizr устарели. Я сразу понял, что это потому, что недавно я обновил все свои пакеты NuGet, поэтому номера версий больше не совпадают.

Вот разметка (после обновления номеров версий вручную):

<script src="@Url.Content("~/Scripts/jquery-1.6.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-2.0.6.min.js")" type="text/javascript"></script>

Это проблема технического обслуживания. По сути, мне кажется, что мне приходится вручную увеличивать номера версий в ссылках на мои скрипты каждый раз, когда я использую NuGet для обновления всех своих пакетов. В лучшем случае это неудобство, а в худшем - то, что я просто забуду сделать целиком, особенно если учесть, что при выполнении обновления в NuGet или во время компиляции предупреждений нет.

Два вопроса:

  • Что я могу сделать, чтобы улучшить процесс обновления, чтобы номера версий обновлялись автоматически или, по крайней мере, получали предупреждение о том, что ссылки на мои сценарии неверны? (Примечание: у меня уже включены MvcBuildViews.)

  • Почему jquery и modernizr имеют номера версий в имени файла, а другие скрипты (такие как jquery.validate и jquery.validate.unobtrusive) - нет? Похоже, что проблему можно решить, сохранив номера версий в именах файлов.

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Я только что установил elmah для регистрации ошибок на моем сайте. Оказывается, что если тег script в html ссылается на несуществующий файл, это вызовет ошибку в elmah. Поскольку elmah настроен на отправку электронных писем при возникновении ошибок, это обеспечивает достаточно приличный механизм оповещения для устаревших ссылок на скрипты. Получение фактической ошибки компиляции или предупреждения было бы предпочтительнее, но, по крайней мере, elmah не дает этой проблеме остаться незамеченной.

1 голос
/ 19 сентября 2011

Насколько я знаю, изменение файлов через nuget невозможно.Это также было бы небезопасно.

В настоящее время я объединяю свои js-файлы в один, и когда я обновляю jquery-файлы, я перехожу туда и меняю его.

Если JQuery не включает версию файлачисло, которое может вызвать некоторые разрывы в вашем коде, если произойдет любое изменение.

...