Visual Studio - удаление неиспользуемых файлов - PullRequest
18 голосов
/ 14 апреля 2011

Интересно, есть ли расширение или макрос или что-то, что просматривает ваше решение и выдает отчет о том, на какие файлы js / css / image не ссылаются нигде в коде?

У меня большой проекти со временем на нем скопилась пыль.Кроме ручного поиска использования каждого файла, есть ли другой способ экономии времени?

Ответы [ 5 ]

9 голосов
/ 22 февраля 2013

Существует расширение Visual Studio, которое ищет файлы изображений без ссылок.Он находит все файлы изображений в вашем проекте, а затем сканирует все файлы aspx / cs / ashx / css / js для ссылок.Это еще не было обновлено для Visual Studio 2012.

http://visualstudiogallery.msdn.microsoft.com/fb7a9b9c-08e1-4bb4-91b4-8e512feb5a1b

3 голосов
/ 19 апреля 2011

Обновление Вы не найдете инструмента, который может систематически идентифицировать неиспользуемые ресурсы, поскольку JavaScript, CSS и файлы изображений могут загружаться динамически. В этой статье показано, как динамически загружать JavaScript и CSS, а в JavaScript - простая задача динамической загрузки изображения. Легко представить сценарий, в котором имя изображения загружается из внешнего источника данных или объединяется с другим значением поля плюс «.jpg». Очевидно, что любой инструмент, который пытался сканировать ваш источник, чтобы найти файлы, на которые нет ссылок, пропустил бы эти ресурсы.

При этом вы можете искать жестко запрограммированные ссылки на файлы .js, .css и .jpg, используя поиск в Visual Studio с помощью функции регулярных выражений или используя мощный текстовый редактор, такой как Notepad ++, с поиском по регулярным выражениям. особенность.

Например, чтобы использовать Visual Studio для поиска всех файлов, заканчивающихся на .js, на которые есть ссылки на страницах ASCX или ASPX, перейдите в меню «Редактировать / Найти и Заменить / Найти в файлах», установите для выражения поиска значение .js. > включить «Используйте регулярные выражения» и установите для «Искать в этих типах файлов» значение «* .aspx; * .ascx». («\» экранирует «.», а «>» означает конец слова, так что «foo.js» найден, но не «foo.jsx». Visual Studio имеет собственный синтаксис регулярных выражений, который задокументирован здесь )

Кроме того, инструменты в моем первоначальном ответе ниже могут дать хорошее представление о том, какие ресурсы JS / CSS / IMAGE фактически используются при загрузке вашего сайта. При использовании вместе с инструментом тестирования, таким как Selenium , они должны позволять вам уверенно удалять ресурсы.


Есть несколько инструментов, на которые вы должны обратить внимание:

WARI сканирует ваше веб-приложение и проверяет зависимости между функциями JavaScript, стилями CSS, тегами HTML и изображениями.

Цель состоит в том, чтобы найти неиспользуемые изображения, а также неиспользуемые и дублированные функции JavaScript и стили CSS.

1 голос
/ 03 сентября 2015

Особенности решения

  • - полу-ручной
  • не является расширением
  • выглядит долго, но не сложно или сложно
  • работает только для изображений или всех файлов
  • преодолевает все уловки Ajax
  • должен работать с любым проектом или версией Visual Studio

Steps

  1. Запустите веб-сайт в Chrome с включенной отладкой (нажмите F12 перед запуском веб-сайта)
  2. Полностью тренируйся на сайте. Заставь его загрузить все, что когда-либо будет загружено.
  3. Перейдите на вкладку Сеть .
  4. В сетке файлов, нажмите на любое из изображений, которые появляются в списке (неважно, какое из них). Это приведет к тому, что все заголовки столбцов, но Name исчезнут.
  5. Нажмите на заголовок столбца Name , чтобы отсортировать по возрастанию.
  6. Do CTRL + A , CTRL + C для копирования всех имен файлов.
  7. Вставьте в новую таблицу Google (в Google Документы) в ячейку A2 .
  8. Повторите шаги 6 и 7, если по какой-либо причине не были скопированы все имена файлов. Прокрутите вниз.
  9. Перейдите в каталог фактических изображений вашего веб-сайта (или любой другой каталог, который вы хотите сравнить) в командной строке и введите dir /b. Скопируйте это в буфер обмена (функция отметки) и вставьте в ячейку B2 .
  10. В ячейку C2 вставьте эту формулу =not(isna(VLOOKUP(B2,$A$2:$A$TheBottomOfA,1,false))). Измените TheBottomOfA на последнюю использованную строку в столбце A .
  11. Скопируйте формулу вниз для всех ваших значений в столбце B .
  12. В ячейке C1 , тип Используется . В ячейке B1 введите Имя . Добавьте фильтр данных для всех значений в столбцах B и C. Установите фильтр с помощью мыши в C1 , чтобы показывать только Используется = FALSE.

Результат

То, что вы смотрите в столбце B - это список файлов, которые вы не используете.

Примечание

Я рекомендую перемещать неиспользуемые файлы в автономную папку, а не удалять их.

Внимание

Вам все еще нужно использовать здравый смысл. BRAIN=ON

0 голосов
/ 06 октября 2016

Если вы используете новую версию Visual Studio и не можете использовать расширения, я сделал следующее:

  1. Исключить все целевые файлы.
  2. Найдите ",,," (это указывает на абсолютную ссылку на ресурс) и включите каждый найденный ресурс. Обратите внимание, вы должны использовать любые уникальные ключевые слова, имеющие отношение к вашим ссылкам.
  3. Повторяйте шаг 2 до тех пор, пока Visual Studio не прекратит открывать файлы (если новые совпадения не найдены, в фокусе будут уже открытые документы).
  4. Попробуйте построить проект. Если вам не хватает ресурса, Visual Studio сообщит вам. В этом случае повторите шаги 2-4; это ничего не стоит, это редко когда-либо будет необходимо.

Мне нужно было сделать это только один раз, и я потратил максимум десять минут.

0 голосов
/ 06 февраля 2015

Расширение в выбранном ответе выше работает только в vs2012, в то время как Code Maid работает в vs2010 - vs2014:

Существует бесплатное расширение под названием Code Maid , которое«Это расширение Visual Studio с открытым исходным кодом для очистки, анализа и упрощения наших C #, C ++, F #, VB, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript и TypeScript».Делает изображения также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...