Должен ли я скомпилировать свою библиотеку реагирования или опубликовать sh только код ES6? - PullRequest
0 голосов
/ 08 января 2020

У меня есть очень простой хук, который я хочу опубликовать от 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 этого хука в свой пакет, и все.

Заранее спасибо, что нашли время прочитать и ответить!

1 Ответ

0 голосов
/ 09 января 2020

Вы можете опубликовать sh код ES6.

Текущий js spe c - ES2020. Все среды выполнения должны поддерживать все функции из этой спецификации c. Таким образом, вам нужно скомпилировать собственный код в соответствии с последними стандартами. Если пользователь хочет использовать ваш код в более ранних версиях (например, IE11), он может перенести весь код в процессе сборки.

...