Я работал над личным проектом, где я разработал несколько компонентов, которые, как я думал, стоит делиться, но как? Я могу опубликовать их на NPM, но пользователь должен быть в состоянии поставить с ними не только увидеть примеры по умолчанию, вот когда я обнаружил, что over Pilluguidist, я боролся на 1 день, чтобы получить это впервые, и теперь он берет 10 минут со стильной установкой компонентов.
Мы будем использовать raction STALLGUIDISTIST, так как не только можно взаимодействовать с компонентами, можно также изменить реквизиты и написать пользовательскую функцию, чтобы посмотреть, как компонент ведет себя.
RACT STALLGUIDISTISTAIST не предоставляет Boving PlateLate Alcess App, но его плагин и может быть легко интегрирован с CRA или на любое приложение React с WebPack, я разделил шаги на 3 части.
Создать приложение React с помощью Teadercript
- Добавить реагировать стильгидист
- Добавьте поддержку TeampScript
- Создать приложение React
Создайте настройку RACT с использованием CRA с использованием NPX для последней версии или пряжи.
// Using yarn yarn create react-app my-component-library --typescript // Using npm npx create-react-app my-app --typescript cd my-component-library // Make sure App is running yarn start
Добавить реагировать стильгидист
Давайте отреагируемся на стильгидист на наш проект, используя
пряжа add -d raction-styleguidist
Поскольку мы собираемся использовать этот проект в качестве библиотеки компонентов, никогда не используют сценарий запуска по умолчанию и строить. Итак, мы заменим их со сценариями стильгудистов, он должен выглядеть так
"start": "npx styleguidist server", "build": "npx styleguidist build", "test": "react-scripts test", "eject": "react-scripts eject"
Начнем наш сервер, используя начало пряжи, появится следующая страница.
Это потому, что мы не говорили Стильгидиста, где наши компоненты, у нас даже нет ни одного компонента.
Давайте добавим простой компонент кнопки в папке SRC/компонентов/кнопку.
// src/components/button/Button.tsx import as React from "react"; class Button extends React.PureComponent { render() { return ( ); } } export default Button;
Добавьте STYLEGUIDE.CONFIG.JS в корневую папку приложения и напишите следующий код внутри него, он говорит стилю, где наши компоненты.
module.exports = { components: "src/components/**/*.tsx" };
Запустите сервер снова, используя начать пряжу, обратите внимание, что мы сделали изменение в Styleguidist Configuration для этого, чтобы отразить, что мы должны перезапустить сервер.
Это должно выглядеть что-то вроде этого
К нашему компоненту появится там, мы должны создать readme.md внутри папки кнопки, как это, каждый компонент будет иметь свой файл readme.md, где вы можете показать различный пример с различными выбросами.
// src/components/Button/README.md js
Говоря о разных реквизитах позволяет добавить опоры нашу кнопку
// src/components/button/Button.tsx import as React from "react"; interface IProps { / Size of the button / size: "regular" | "large"; } class Button extends React.PureComponent{ render() { const { size, children, ...rest } = this.props; return ( ); } static defaultProps = { size: "regular" }; } export default Button;
// src/components/Button/README.md
Приведенный выше код и Readme.md приведет к
Раздел «Реквизит и метод» был автоматически добавлен в наше описание компонента, но тип неизвестен, что не должно быть так, как мы используем TeampScript, и он должен показать «регулярно» | «Большой», React STALLGUIDISTISTIST не поддерживает Typescript по умолчанию, он прочитал реквизиты от PROPTYPE здесь, он использует по умолчаниюProops, чтобы показать вышеупомянутое, нам нужно добавить анализатор, который будет анализировать реквизиты, определенные в Teamscript.
SpaceStry Поддержка Добавить React-Docgen-Teamscript с использованием
пряжа add -d racted-docgen
Добавить парсер Tostyleguide.config.js.
module.exports = { components: "src/components/**/*.tsx" propsParser: propsParser: require("react-docgen-typescript").parse };
Вы также можете добавить описания для iProps, используя JSDOC чуть выше опоры, он будет показан в разделе Описание
Высокие пять 🙌 У нас есть библиотека компонентов, теперь мы можем добавить отдельный файл package.json на каждый компонент и публиковать их на NPM.
Я подтолкнул вышеуказанную настройку на GitHub, вы можете проверить для справки или использовать его напрямую.
Спасибо за чтение!
Прочитайте это на Середина