Есть ли способ удалить неиспользуемые импорты и объявления из Angular 2+?

Мне поручено взять какой-то испорченный код у других разработчиков, которые недавно покинули компанию.

Я с любопытством спрашиваю, есть ли какой-нибудь подключаемый модуль Visual Studio Code или другие средства, которые могли бы помочь нам быстро и эффективно упорядочить и упорядочить импорт и ссылки?

Например, могут быть сотни таких импортных товаров

import { AutoCompleteModule,InputSwitchModule } from 'primeng/primeng';
import { ListboxModule } from 'primeng/primeng';

могут быть преобразованы в аналогичные

import { AutoCompleteModule,
         InputSwitchModule,
         ListboxModule  } from 'primeng/primeng';

Или другие функции, такие как автоматическое удаление этих неиспользуемых импортов и деклараций из приложения.module или всех компонентов через весь проект?

Спасибо за любую обратную связь!

Ответ 1

Отредактируйте (как это предлагается в комментариях и других людях), код визуальной студии развился и предоставляет эту функциональность, встроенную простым

option + Shift + O для Mac

Alt + Shift + O для Windows


Оригинальный ответ:

Я надеюсь, что это расширение кода Visual Studio будет достаточно для ваших нужд: https://marketplace.visualstudio.com/items?itemName=rbbit.typescript-hero

Он предоставляет следующие функции:

  • Добавить импорт вашего проекта или библиотек в ваш текущий файл
  • Добавить импорт для текущего имени под курсором
  • Добавьте все отсутствующие импорты файла одной командой
  • Intellisense, который предлагает символы и автоматически добавляет необходимый импорт "Функция лампочки", которая исправляет код, который вы написали
  • Сортировать и систематизировать импорт (сортировать и удалять неиспользуемые)
  • Представление кода вашего открытого документа TS/TSX
  • Все классные вещи для JavaScript! (хотя экспериментальная стадия, лучшее описание ниже.)

Для Mac: control + option + o

Для победы: Ctrl + Alt + o

Ответ 2

С Visual Studio Code Release 1.22 это бесплатно, без необходимости расширения.

Shift + Alt + O позаботится о вас.

Ответ 3

Поскольку VSCode v.1.24 и TypeScript v.2.9:

Для Mac: option + Shift + O

Для Win: Alt + Shift + O

Ответ 4

Чтобы иметь возможность обнаруживать неиспользуемые импорт, код или переменные, убедитесь, что у вас есть эти параметры в файле tsconfig.json

"compilerOptions": {
    "noUnusedLocals": true,
    "noUnusedParameters": true
}

у вас установлен набор машинописных файлов, если не установить его с помощью:

npm install -g typescript

и расширение tslint установлен в Vcode, это работает для меня, но после включения я замечаю увеличение количества использования центрального процессора, особенно на больших проектах.

Я также рекомендовал бы использовать расшифровку героя для организации импорта.

Ответ 5

Если вы большой пользователь Visual Studio, вы можете просто открыть свои настройки и добавить следующее в файл settings.json:

...
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
  "source.organizeImports": true
}
....

Надеюсь, это может быть полезно!

Ответ 6

В этой теме уже так много хороших ответов! Я собираюсь опубликовать это, чтобы помочь любому, кто пытается сделать это автоматически! Статья была очень полезна для автоматического удаления неиспользуемых импортов для всего проекта.

В статье автор объясняет это так:

Создайте отдельный tslint файл, в котором есть следующее:

{
  "extends": ["tslint-etc"],
  "rules": {
    "no-unused-declaration": true
  }
}

Затем выполните следующую команду, чтобы исправить импорт:

 tslint --config tslint-imports.json --fix --project .

Подумайте об исправлении любых других ошибок, которые он выдает. (Я сделал)

Затем проверьте работоспособность проекта, построив его:

ng build

или

ng build name_of_project --configuration=production 

Конец: Если сборка выполнена правильно, вы успешно удалили импорт автоматически!

ПРИМЕЧАНИЕ. Это удаляет только ненужный импорт. Он не предоставляет другие функции, которые VS Code использует при использовании одной из ранее упомянутых команд.

Ответ 7

перейдите в tslint.json и измените значение свойства no-unused-variable на false