Как проверить модуль npm с peerDependencies? - PullRequest
0 голосов
/ 18 января 2019

Я новичок в понимании peerDependencies , и я прочитал следующие ссылки, пытаясь узнать, как протестировать модуль npm, содержащий peerDependencies в своем package.json:

Однако я не нашел четкого решения для тестирования npm с peerDependencies. Некоторые рекомендуют добавить peerDependencies как глобальные, а некоторые рекомендуют включать peerDependencies в devDependencies, и ни один из них не кажется правильным.

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

Вот как я выполняю большинство тестов, написанных с использованием этой задачи Gulp:

function testRunner() {
  return (
    gulp
      .src('./tests/**/*.js', { read: false })
      .pipe(
        mocha({
          exit: true,
          timeout: 10000
        })
      )
      .on('error', console.error)
  );
}

Я получил полезное предложение (см. Комментарии ниже, @estus) для использования npm-install-peers , однако я пока не уверен, что он может настроить одноранговый узел зависимость перед использованием, как это будет выполнено пакетом хоста.

Отзывы и предложения наиболее ценны.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

В моем случае в прошлый раз я разработал библиотеку, в которой ioredis используется в качестве зависимости от равноправных узлов. Мое решение состояло в том, чтобы поместить эту библиотеку в зависимость от разработчиков.

// package.json
"peerDependencies": {
    "ioredis": "4.x"
},
"devDependencies": {
    "ioredis": "4.x"
}

это работало хорошо, и пока нет проблем с использованием этого подхода.

0 голосов
/ 21 января 2019

Я связался с авторами npm-install-peers, а ответ одного из авторов

Когда дело доходит до тестирования вашего пакета / проекта на CI, я считаю, что правильный способ сделать это вручную добавить ваши равноправные зависимости ваши зависимости от разработчиков. Нет необходимости в этом маленьком инструменте.

...