ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

React Styleguidist 快速入门:从安装到构建你的第一个组件库 Style Guide

React Styleguidist 快速入门:从安装到构建你的第一个组件库 Style Guide 开发工具前端【免费下载链接】react-styleguidistIsolated React component development environment with a living style guide项目地址https://gitcode.com/gh_mirrors/re/react-styleguidist点击查看免费下载本篇指南基于 React Styleguidist 官方 docs/GettingStarted.md 文档带你在一个 React 项目中完整走通「安装 → 配置 → 启动 → 写文档」四步流程并结合仓库源码与官方示例讲解每一步背后的原理与可选参数。读完你不仅能把npx styleguidist server跑起来还能理解组件发现规则、webpack 复用方式、CLI 参数与常见排错路径直接上手搭建一个带热更新的实时组件文档站点。1. 安装 Styleguidist安装 webpack按需Styleguidist 底层依赖 webpack 来加载与编译你的组件代码因此如果你的项目没有使用 webpack也不是 Create React AppCRA项目需要先安装 webpacknpm install --save-dev webpack注意你的业务项目本身可以不使用 webpack但 Styleguidist 运行时必须依赖它。仓库的 package.json 将webpack、webpack-dev-server、webpack-cli等列为 devDependencies并在 src/scripts/index.esm.ts 顶部通过import ./utils/ensureWebpack显式检查用户环境是否已安装 webpack缺失时会给出明确提示。安装 Styleguidistnpm install --save-dev react-styleguidist安装完成后styleguidist命令即由 package.json 中的bin字段styleguidist: lib/bin/styleguidist.js提供可以直接通过npx或 npm scripts 调用。2. 配置你的 Style Guide如果你使用的是 Create React App可以跳过本节—— CRA 项目开箱即用无需任何配置文件详见下文「Create React App 场景」。对于其他项目配置主要围绕两件事告诉 Styleguidist 你的组件在哪里见 docs/Components.md告诉 Styleguidist 如何加载你的应用代码见 docs/Webpack.md。Styleguidist 默认会在项目根目录通过findup向上逐级查找寻找styleguide.config.js作为配置文件。仓库 src/scripts/config.ts 的findConfigFile()实现了这一查找逻辑findup.sync(process.cwd(), CONFIG_FILENAME)找到后require该文件并交给sanitizeConfig校验因此你既可以在项目根目录放styleguide.config.js也可以把配置放在任意位置后用--config参数显式指定。定位组件components 选项Styleguidist 默认使用如下 glob 模式扫描组件src/components/**/*.{js,jsx,ts,tsx}它会拾取src/components/Button.js、src/components/Button/Button.js、src/components/Button/index.js这类文件同时自动忽略__tests__目录以及文件名含.test.js、.spec.js.jsx/.ts/.tsx同理的测试文件。如果默认模式不适合你的项目结构可以在styleguide.config.js中配置components选项。例如你的组件形如components/Button/Button.js同时用components/Button/index.jsexport { default } from ./Button做统一导出以简化 import此时应跳过index.jsmodule.exports { components: src/components/**/[A-Z]*.js }Infocomponents中所有路径都相对于配置文件所在目录。Tip用 ignore 选项排除不想出现在 Style Guide 中的文件用 getComponentPathLine 自定义组件名下方展示的路径。仓库官方示例 examples/basic/styleguide.config.js 就是一个最小可运行的完整配置const path require(path); const { version } require(./package); module.exports { components: src/components/**/[A-Z]*.js, defaultExample: true, moduleAliases: { rsg-example: path.resolve(__dirname, src), }, ribbon: { url: https://github.com/styleguidist/react-styleguidist, }, version, webpackConfig: { module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: babel-loader, }, { test: /\.css$/, use: [style-loader, css-loader], }, ], }, }, };配置 webpackwebpackConfig 选项Styleguidist 默认会尝试读取项目根目录的webpack.config.js并复用它。若配置文件在别处可手动加载module.exports { webpackConfig: require(./configs/webpack.js) }也可以与其它自定义选项合并module.exports { webpackConfig: Object.assign({}, require(./configs/webpack.js), { /* Custom config options */ }) }Cautionentry、externals、output、watch、stats选项会被忽略生产构建时devtool也会被忽略。CommonsChunkPlugins、HtmlWebpackPlugin、MiniHtmlWebpackPlugin、UglifyJsPlugin、TerserPlugin、HotModuleReplacementPlugin等插件同样会被忽略因为 Styleguidist 已内置或避免与它们冲突。Tip如果自定义 loader 不生效尝试把include/exclude写成绝对路径。Note不支持 Babel 化的 webpack 配置文件如webpack.config.babel.js建议将配置转为原生 Node 语法。Tip需要更复杂的合并时可使用webpack-merge该库本身也在仓库依赖中见 package.json。如果不想复用现有 webpack 配置也可以直接在styleguide.config.js里写一份内联配置module.exports { webpackConfig: { module: { rules: [ // Babel loader 会使用你项目里的 babel.config.js { test: /\.jsx?$/, exclude: /node_modules/, loader: babel-loader }, // 组件所需的其他 loader { test: /\.css$/, use: [style-loader, css-loader] } ] } } }Caution使用内联webpackConfig后将不再自动加载项目根目录的webpack.config.js。Create React App 场景CRA 开箱即用只要组件位于src/components或src/Components目录下且文件扩展名为.js/.jsx连 style guide 配置文件都不需要创建。仓库中的 examples/cra 示例即演示了这种零配置用法其styleguide.config.js仅为一空文件用于防止 Styleguidist 误用上层目录配置。非 webpack 项目场景如果项目本身不使用 webpack仍需为 Styleguidist 提供 webpack loader 来加载代码。以 Babel 为例先安装 loadernpm install --save-dev babel-loader然后在styleguide.config.js中配置 Babel 规则与上面内联配置相同test: /\.jsx?$/exclude: /node_modules/loader: babel-loader或创建独立的webpack.config.js。若项目尚未安装 Babel还需安装babel/core、babel/preset-env、babel/preset-react并在项目根目录创建babel.config.jsmodule.exports { presets: [ [ babel/env, { modules: false, useBuiltIns: usage } ], babel/react ] }官方还建议在package.json中补充browserslist配置如1%、last 1 version、Firefox ESR、not dead让 Babel 只为实际支持的浏览器做转换减小产物体积、提升运行速度。3. 启动你的 Style Guide安装与配置完成后两条核心命令即可驱动整个工作流npx styleguidist server启动 Style Guide 开发服务器支持热更新hot reload边写组件边实时预览npx styleguidist build生成生产环境可部署的静态 HTML 版本。npx是 npm 自带工具会直接运行项目本地安装的styleguidist包无需全局安装。将命令写入 package.json官方建议把这两条命令加入package.json的scripts字段方便团队统一使用{ scripts: { styleguide: styleguidist server, styleguide:build: styleguidist build } }之后即可用npm run styleguide启动开发服务器、用npm run styleguide:build构建静态版本。仓库自身也在 package.json 中采用了同样模式例如start: node lib/bin/styleguidist.js server --config examples/basic/styleguide.config.js、build:basic: node lib/bin/styleguidist.js build --config examples/basic/styleguide.config.js。CLI 选项速查OptionDescription--config file指定配置文件路径--port port指定开发服务器端口--open在默认浏览器中自动打开 Styleguidist--verbose打印调试信息完整命令与选项说明见 docs/CLI.md。底层调用链源码视角server与build两个命令最终都汇聚到同一个程序化 API。在 src/scripts/index.esm.ts 中默认导出的初始化函数会先调用getConfig解析配置然后返回三个方法build(callback)→ 调用build(config, cb)构建静态站点server(callback)→ 调用server(config, cb)启动 webpack-dev-servermakeWebpackConfig(env)→ 返回 Styleguidist 内部生成的 webpack 配置env可为production、development或none默认production。也就是说CLI 只是这层 Node.js API 的命令行封装。如果你想在自己写的脚本里以编程方式构建或启动 Style Guide可以直接require(react-styleguidist)使用上述方法。4. 开始为组件编写文档启动后接下来就是为组件写文档。Styleguidist 会根据源码注释JSDoc、propTypes 声明和 Readme 文件自动生成文档核心写法见 docs/Documenting.md这里给出最关键的三类能力4.1 JSDoc 注释 propTypes组件级 JSDoc 注释会作为组件说明展示propTypes 会解析成一张属性表格import React from react import PropTypes from prop-types /** * General component description in JSDoc format. Markdown is *supported*. */ export default class Button extends React.Component { static propTypes { /** Description of prop foo. */ foo: PropTypes.number, /** Description of prop baz. */ baz: PropTypes.oneOfType([PropTypes.number, PropTypes.string]) } static defaultProps { foo: 42 } render() { /* ... */ } }InfoFlow 与 TypeScript 类型注解同样受支持PropTypes与注释由react-docgen库解析该库在 package.json 依赖中可通过 propsParser、resolver、updateDocs 选项调整行为。4.2 Readme 与可交互示例在组件目录放置Readme.md或组件名.md其中的代码块会根据语言标签呈现不同形态语言标签为js、jsx、javascript的代码块会渲染成带实时编辑器的可交互 playground为兼容旧文档无语言标签的代码块也按此处理但新文档建议始终写明语言标签添加noeditor修饰符可隐藏编辑器仅展示渲染结果添加static修饰符如jsx static只显示高亮源码不渲染组件——适合展示不想被当作 playground 的 JS 代码添加padded修饰符可为同一代码块内的多个示例增加间距还可以通过{ props: { className: checks } }这种形式给示例包裹层传入自定义 props其余语言标签如html仅作高亮源码展示不会渲染组件。示例写法// 在 Button/Readme.md 或 Button.md 中 js Button sizelargePush Me/Button jsx noeditor ButtonPush Me/Button **Tip** 示例文件名可通过 [getExampleFilename](https://link.gitcode.com/i/c79edce9351b37643b3dd5497f368d3f) 配置。 #### 代码示例中的导入与 Hooks Markdown 中的示例代码使用 ES6 JSX 语法**当前组件无需显式导入即可直接使用**其他组件或模块如 mock 数据则需显式 import jsx // 在 Panel/Readme.md 中 jsx import Button from ../Button ;Panel pUsing the Button component in the example of the Panel component:/p ButtonPush Me/Button /Panel **Info** Styleguidist 使用 Bublé 在前端运行 ES6 代码buble 在 [package.json](https://link.gitcode.com/i/04ed692ecc483e9b4d31a8b219d7cfe6) 依赖中支持大部分 ES6 特性rsg-example 这类模块别名由 [moduleAliases](https://link.gitcode.com/i/ff7900d9de05bbea61e7b5471a47b147) 配置定义见 [examples/basic/styleguide.config.js](https://link.gitcode.com/i/fc3e922966ca9b2aa10df0917c949c10)。 **Caution** 只能在 Markdown 文件中使用 import浏览器内的示例编辑器不支持导入。 每个示例都相当于一个函数组件可直接使用 useState 等 React Hooks 处理状态如果组件依赖 React Context则需要在示例或自定义 Wrapper 组件中提供 Provider。 ### 4.3 常用 JSDoc 标签 - 组件、props、方法通用deprecated、see/link、author、since、version均可渲染 Markdown - props 专用param、arg、argument - example ./extra.examples.md关联外部示例文件注意当 [skipComponentsWithoutExample](https://link.gitcode.com/i/ba1640e6e0c029d360d1ae1922c80155) 为 true 时仍需要常规示例文件如 Readme.md - public把方法标记为公开并发布到文档默认所有方法视为私有 - ignore把某个 prop 从文档中移除默认所有 prop 视为公开 - visibleName自定义组件在 Styleguidist UI 中的显示名称不改变代码中的组件名。 ## 5. 遇到问题怎么办 官方文档为常见问题准备了两个入口 - [docs/Cookbook.md](https://link.gitcode.com/i/9ffbd0d225d684bcd7f538c8509c467d)常见问题与解决方案合集 - [docs/Thirdparties.md](https://link.gitcode.com/i/ef2a3f4dcfca51928980273f20d8ec60)与第三方工具集成、以及 Styleguidist 无法理解某些组件写法时的解决办法。 极少数情况下如使用遗留或第三方库需要修改 Styleguidist 不允许通过 webpackConfig 修改的 webpack 选项可使用 [dangerouslyUpdateWebpackConfig](https://link.gitcode.com/i/074728c76720776a7c3da4267b2c5a42) 选项——**该选项可能破坏 Styleguidist使用风险自负**。 ## 总结四步上手清单 1. npm install --save-dev webpack非 CRA 且未使用 webpack 时与 npm install --save-dev react-styleguidist 2. 按项目结构调整 components 组件扫描模式并按需配置 webpackConfigCRA 项目可跳过 3. npm run styleguide 启动热更新开发服务器npm run styleguide:build 构建可部署的静态站点 4. 用 JSDoc 注释、propTypes 和 Readme.md 中的可交互示例持续丰富组件文档。 进阶能力可继续阅读 [docs/Configuration.md](https://link.gitcode.com/i/6a9f130b8e4f4a8408444f594f1aaecc)全部配置项、[docs/CLI.md](https://link.gitcode.com/i/6c70985d4782da0dee37a45c7e59b025)命令与选项、[docs/API.md](https://link.gitcode.com/i/7df686b4ec732551778fb48aaa239973)Node.js API并参考仓库内 [examples/basic](https://link.gitcode.com/i/edd8218fb918b44d63ab31f347607cc3)、[examples/cra](https://link.gitcode.com/i/bc629499de2aa336fa35310eabf9bc4b)、[examples/sections](https://link.gitcode.com/i/af0f003e3aa64b8f1aed3386f0e652f0)、[examples/customised](https://link.gitcode.com/i/7d5f28e317f386d8bef58eaca75acebc) 等示例工程。赞分享开发工具前端【免费下载链接】react-styleguidistIsolated React component development environment with a living style guide项目地址https://gitcode.com/gh_mirrors/re/react-styleguidist点击查看免费下载相关推荐React Styleguidist快速上手指南从0到1创建第一个组件文档React Styleguidist快速上手指南从0到1创建第一个组件文档 React Styleguidist是构建 隔离React组件开发环境 和开发工具前端Diagrams快速入门从安装到第一个架构图Diagrams快速入门从安装到第一个架构图 本文是一份完整的Diagrams工具入门指南详细介绍了从环境准备到创建第一个架构图的完整流程。内容涵盖Grap数据可视化开发工具文档Husky快速入门从安装到第一个钩子Husky快速入门从安装到第一个钩子 Husky是一个现代化的Git钩子管理工具让Git hooks配置变得简单直观。本文将从安装、初始化配置开始详细介绍开发工具版本控制上一篇Vue-Pure-Admin5分钟构建现代化企业级管理后台的实战指南下一篇标题探索未来Android开发Pokedex Compose一款引领潮流的开源应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表