У меня есть очень простой хук, который я хочу опубликовать от sh до npm, и я изо всех сил пытаюсь понять, почему я должен вообще скомпилировать мой хук. Позвольте мне сначала предоставить некоторый контекст.
Мой хук зависит только от React.useState
и React.useEffect
. Цель этого хука - использовать его с моей существующей библиотекой: https://npmjs.com/package/simple-shared-state. Как видите, в этом хуке очень мало:
import { useEffect, useState } from "react";
export default (store, selectors) => {
const [state, setState] = useState([]);
useEffect(() => {
const unwatch = store.watchBatch(selectors, (array) => {
setState(array.slice());
});
return unwatch;
}, []);
return state;
};
Я посмотрел на инструмент create-react-hook
cli и опробовал его, но не вижу как включенные dev-зависимости нужны для моего проекта. Мой хук уже можно использовать в моем моно-репо, , где я добавил папку react-test-ground/
, в которой я предоставляю работающее приложение, которое я загрузил с помощью CRA .
Относительно тестирования:
Если это имеет смысл, я могу go дополнительный шаг добавления модульных тестов специально для этого хука, но в данный момент я не вижу острой необходимости в этом, так как ядро функциональности находится в simple-shared-state
, и все эти логи c уже покрыты довольно обширными тестами.
Я посмотрел на response-hooks-testing-library и основан на «Когда использовать эту библиотеку» и «Когда не использовать эту библиотеку», мне кажется, что в моей ситуации мне не нужно использовать эту библиотеку. Я думаю, что моя ловушка достаточно проста, поэтому дополнительные этапы добавления дополнительных тестов трудно оправдать. Ты согласен? Можете ли вы вспомнить причину, по которой я должен использовать react-hooks-testing-library
?
Относительно компиляции:
Я не вижу веской причины для компиляции и минимизации моего хука, так как разработчики приложения реагируют почти исключительно на компиляцию своего проекта из JSX.
Резюме
Учитывая все вышесказанное, есть ли основания делать что-то большее, чем просто опубликовать sh мой хук Точно так же, как показано на npm? Это означает, что package.json
будет включать "main": "src/index.js"
, а не каталог dist/
. Реагировал бы go на package.json
под peerDependencies
, и все. Разработчики приложений просто скомпилируют исходный код ES6 этого хука в свой пакет, и все.
Заранее спасибо, что нашли время прочитать и ответить!