Как отключить сообщения npm fund

16 июн. 2024 г. в Заметки

npm fund — команда в npm, отображающая список пакетов, которые нуждаются в финансовой поддержке. Функциональность была добавлена в npm для содействия финансированию open-source проектов. Но кроме отдельного вызова команды сообщение так же выводится и при обычной установке пакетов:

$ npm i
 
up to date, audited 506 packages in 1s
 
228 packages are looking for funding
  run `npm fund` for details

Цель таких сообщений вроде бы благая, но часто они скорее мешают:

  • Шум в консоли: постоянные уведомления загромождают вывод в консоли, и более важные сообщения об ошибках могут затеряться;
  • CI/CD: в автоматизациях дополнительные сообщения могут так же усложнить анализ логов;
  • Повторяющаяся информация: вы можете уже и сами знать о возможности финансирования open-source пакетов или даже уже финансировать что-то. Повторные сообщения вам незачем.

Через опции npm

--no-fund

npm install --no-fund

Отключит fund-сообщения только при конкретном вызове команды.

.npmrc

npmrc — файл конфигурации для npm (подробнее в документации npm).

Нас интересуют следующие варианты размещения конфига. Файл может быть:

  • Локальным для проекта: project/.npmrc
  • Глобальным для пользователя: ~/.npmrc
npm config set fund false

Эта команда поместит fund=false в пользовательский файл ~/.npmrc. Так, вы перестанете видеть fund-сообщения при любом вызове npm i в любых проектах.

Кроме того, вы можете создать файл конфигурации в проекте и поместить туда эту же опцию. Сообщения скроются только для конкретного проекта.

touch .npmrc
echo "fund=false" > .npmrc

Ещё вариант — опция --location у npm config set. Принимает значения global, user или project. Следующий вызов аналогичен ручному созданию файла в корне проекта.

npm config set fund false --location project

.npmrc в папке проекта будет работать не только локально, но и в CI/CD: GitHub Actions, Vercel и других системах автоматизации.

Через переменную окружения

Установка переменной NPM_CONFIG_FUND=false перед вызовом команды установки пакетов так же скроет сообщение.

Здесь тоже несколько опций:

Один раз

NPM_CONFIG_FUND=false npm i

GitHub Actions

Добавьте переменную в шаг установки пакетов в вашем workflow файле.

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Install dependencies
        run: npm ci
        env:
          NPM_CONFIG_FUND: false

Vercel

Добавьте переменную окружения NPM_CONFIG_FUND=false в настройках проекта в нужные окружения. Можно добавить сразу во все, чтобы сообщение скрылось в любом deployment.