3

Я работаю над веб-приложением MVC 5. JavaScript код управляется в этих 3-х различных способов,ASP.Net MVC - Как минимизировать JavaScript без связок (Inline/ExternalFile)

  1. Инлайн JavaScript-код в соображениях (читать ASP.Net стороне сервера Переменные т.е. ViewBag, ResourceFile и т.д.)

  2. Реферирование некоторые внешние файлы JavaScript (Один файл JS для каждого просмотра/страницы).

  3. Остальная часть JavaScript является ссылкой на Bundles.

Я хочу преуменьшать # 1 и # 2, я не думаю, что я должен создать пачки для каждой страницы в моем приложении, как есть десятки страниц, так вот почему я думаю, что я не могу используйте функцию MVC Bundling и Minificatin для этого.

Возможно, вы представите решение.

Благодаря

ответ

2

Глоток и Grunt становятся довольно стандартные инструменты промышленности для этого. В последних версиях Visual Studio теперь есть расширения, чтобы поддерживать их.

+0

Я не знаю много о них, но я думаю, что это такие диспетчеры пакетов, как NuGet , Если это правда, вы предлагаете нам оставить NuGet и перейти к Gulp или Grunt? –

+1

Они оба. Использование одного из них позволяет, например, написать один скрипт, который будет обновлять все ваши пакеты и обрабатывать, минимизировать и связывать ваши файлы javascript за один раз. Или вы можете придерживаться nuget, независимо от того, что работает для вас. – Matthew

+1

(уточнение: Gulp and Grunt - это бегуны задач, которые запускают плагины, причем менеджеры пакетов и мини-инструменты являются двумя из распространенных типов плагинов, но есть много других плагинов, которые тоже весьма полезны). – Matthew

0

Вы не можете использовать функцию объединения и минимизации MVC для минимизации встроенных js или внешних файлов JavaScript (это одна из причин не использовать встроенный javascript).

Хотя, если вы все еще хотите использовать встроенный JavaScript, вы можете взглянуть на YUICompressor .NET или какую-нибудь другую минифармную библиотеку, которая поможет вам в этом.

Минимизация внешних скриптов не имеет большого смысла. Практически любой публично доступный JS имеет сокращенную версию, поэтому вместо ссылки на полную версию вы можете ссылаться на нее напрямую. Другое решение может включать в себя те внешние скрипты в вашем проекте MVC (добавление их в папку Scripts), а затем использование функции объединения и минимизации MVC на них

+0

Я не люблю использовать встроенный JavaScript, но что еще мы можем сделать для доступа к ViewBag/ResourceFile в JavaScript? YUICompressor .NET - хорошая идея на самом деле, если это не унаследованный инструмент. Это? «Минимизация внешних скриптов» не означает «Минимизировать сторонние библиотеки», но «Один файл модуля JS для каждого вида/страницы /». И последнее, вы уверены, что все файлы в папке Scripts получили минимальное значение, независимо от того, мы используем их как пакет или нет? Спасибо за ваше время. –

+0

Является YUICompressor.NET - унаследованный инструмент - у меня нет ответа на это, но я знаю, что он широко используется. «Один файл модуля JS для каждого представления/страницы /» - я бы построил пакеты на основе сценариев, которые должны использоваться вместе, поскольку один модуль, например, пакет проверки может включать как проверку jquery, так и jquery ненавязчивые скрипты проверки. Вы уверены, что все файлы в папке Scripts получают minified - они не получают minified - но если вы включите их в пучки и включите оптимизацию, то юниты будут уменьшены. Вы можете минимизировать скрипты вручную, используя плагин Web Essentials –