Получение прямых зависимостей пакета Node: примеры npm и Yarn

Чтобы получить прямые зависимости пакета Node, вы можете использовать различные методы. Вот несколько подходов с примерами кода:

  1. Использование интерфейса командной строки npm:
    Вы можете использовать команду npm listс флагом --length=0, чтобы получить прямые зависимости упаковка. Вот пример:
npm list --depth=0

Эта команда отобразит прямые зависимости текущего пакета в терминале.

  1. Программное использование npm API:
    Вы также можете получить прямые зависимости программно с помощью npm API. Вот пример использования Node.js:
const { promisify } = require('util');
const { exec } = require('child_process');
const execAsync = promisify(exec);
async function getDirectDependencies(packageName) {
  const { stdout } = await execAsync(`npm list ${packageName} --depth=0 --json`);
  const dependencies = JSON.parse(stdout).dependencies;

  return Object.keys(dependencies);
}
// Usage
getDirectDependencies('package-name')
  .then(dependencies => {
    console.log(dependencies);
  })
  .catch(error => {
    console.error(error);
  });

Этот код использует модуль child_processдля выполнения команды npm listи анализирует выходные данные JSON для извлечения прямых зависимостей.

  1. Использование интерфейса командной строки Yarn:
    Если вы используете менеджер пакетов Yarn, вы можете использовать команду yarn listс флагом --глубина=0для получения прямых зависимостей. Вот пример:
yarn list --depth=0

Эта команда отобразит прямые зависимости текущего пакета в терминале.

  1. Программное использование Yarn API:
    Как и в случае с npm, вы можете программно получить прямые зависимости с помощью Yarn API. Вот пример использования Node.js:
const { promisify } = require('util');
const { exec } = require('child_process');
const execAsync = promisify(exec);
async function getDirectDependencies(packageName) {
  const { stdout } = await execAsync(`yarn list ${packageName} --depth=0 --json`);
  const { data } = JSON.parse(stdout);

  return Object.keys(data.trees);
}
// Usage
getDirectDependencies('package-name')
  .then(dependencies => {
    console.log(dependencies);
  })
  .catch(error => {
    console.error(error);
  });

Этот код выполняет команду yarn listи анализирует выходные данные JSON для извлечения прямых зависимостей.