Могу ли я безопасно удалить пакеты npm, помеченные npm-check как NOTUSED?

Я пытаюсь реорганизовать проект Angular/Ionic, который я унаследовал. Я запустил npm-check и получил много НЕИСПОЛЬЗУЕМЫХ зависимостей, как показано ниже, с пометкой «Проверьте свой код перед удалением, поскольку depcheck не может предвидеть все способы использования зависимостей».

@babel/plugin-transform-block-scoping    😕  NOTUSED?  Still using @babel/plugin-transform-block-scoping?
                                                      Depcheck did not find code similar to require('@babel/plugin-transform-block-scoping') or import from '@babel/plugin-transform-block-scoping'.
                                                      Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                                      Use rc file options to remove unused check, but still monitor for outdated version:
                                                          .npmcheckrc {"depcheck": {"ignoreMatches": ["@babel/plugin-transform-block-scoping"]}}
                                                      Use --skip-unused to skip this check.
                                                      To remove this package: npm uninstall @babel/plugin-transform-block-scoping --save

@capacitor/android                       😎  MAJOR UP  Major update available. https://capacitorjs.com
                                                      npm install @capacitor/[email protected] --save to go from 3.9.0 to 4.7.3
                                         😕  NOTUSED?  Still using @capacitor/android?
                                                      Depcheck did not find code similar to require('@capacitor/android') or import from '@capacitor/android'.
                                                      Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                                      Use rc file options to remove unused check, but still monitor for outdated version:
                                                          .npmcheckrc {"depcheck": {"ignoreMatches": ["@capacitor/android"]}}
                                                      Use --skip-unused to skip this check.
                                                      To remove this package: npm uninstall @capacitor/android --save

cordova-plugin-fingerprint-aio           😕  NOTUSED?  Still using cordova-plugin-fingerprint-aio?
                                                      Depcheck did not find code similar to require('cordova-plugin-fingerprint-aio') or import from 'cordova-plugin-fingerprint-aio'.
                                                      Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                                      Use rc file options to remove unused check, but still monitor for outdated version:
                                                          .npmcheckrc {"depcheck": {"ignoreMatches": ["cordova-plugin-fingerprint-aio"]}}
                                                      Use --skip-unused to skip this check.
                                                      To remove this package: npm uninstall cordova-plugin-fingerprint-aio --save

webpack                                  😕  NOTUSED?  Still using webpack?
                                                      Depcheck did not find code similar to require('webpack') or import from 'webpack'.
                                                      Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                                      Use rc file options to remove unused check, but still monitor for outdated version:
                                                          .npmcheckrc {"depcheck": {"ignoreMatches": ["webpack"]}}
                                                      Use --skip-unused to skip this check.
                                                      To remove this package: npm uninstall webpack --save-dev

После проверки кода Angular, если он не ссылается на пакет ни require('package-name'), ни import from 'package-name', могу ли я безопасно удалить этот пакет? Как еще его можно еще использовать, если он не требуется или не импортируется в код?

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поведение npm-check может различаться в зависимости от того, как он выполняет свои оценки. Если NOTUSED означает, что пакет не используется вашим кодом, это не обязательно означает, что другие установленные пакеты не полагаются на него. К сожалению, их документация не дает четкого определения NOTUSED.

Чтобы действовать осторожно, сначала создайте резервные копии файлов package.json и package-lock.json. Затем вы можете попытаться удалить или удалить пакеты один за другим и перестроить свой проект. Не забудьте проверить свой код перед удалением каких-либо пакетов, так как depcheck может быть не в состоянии предсказать каждое возможное использование зависимостей.

Если пакет вообще не используется (импортируется или требуется) кодом, и он существует только в package.json списке зависимостей, как вы думаете, его можно безопасно удалить?

Lorraine R. 18.04.2023 16:31

Не во всех случаях. Как вы заявили: «Проверьте свой код перед удалением, поскольку depcheck не может предвидеть все способы использования зависимостей». На всякий случай создайте резервную копию файлов package.json и package-lock.json где-нибудь, а затем попробуйте удалить их один за другим и пересобрать проект.

Don 18.04.2023 16:38

Спасибо, если вы обновите свой ответ этим, я приму ответ.

Lorraine R. 21.04.2023 07:48

Я обновил его сейчас! :)

Don 21.04.2023 15:38

Другие вопросы по теме