首页 > 其他分享 >vite/storybook/rollup搭建一个自己的组件库

vite/storybook/rollup搭建一个自己的组件库

时间:2023-03-18 16:32:32浏览次数:48  
标签:story Storybook rollup 插件 storybook stories vite addon

构建测试项目

首先vite 初始化一个项目

vue create story-book-demo
## 或者 vue create story-book-demo

然后添加storybook ,具体参看官网:​​https://storybook.js.org/docs/vue/get-started/install​

npx storybook init

这个时候就可以跑项目了

初始化做了什么?

虽然项目运行起来了,不过突然自动创建了一堆未知的文件,也让人心里没底,来看看项目初始化做了哪些事情吧。

  • 安装所需的依赖包:因为识别到当前目录下是一个 Angular 项目,所以安装的是 Angular 版本的 Storybook 依赖包。
  • "@storybook/addon-actions": 用以记录事件触发的插件。
  • "@storybook/addon-essentials": 官方维护的插件集合,带有默认配置。
  • "@storybook/addon-links": 用以给组件 story 创建链接。
  • "@storybook/vue3": storybook 针对 vue框架。
  • “@storybook/builder-webpack5”:针对webpack 构建
  • 设置 npm 脚本:
  • "storybook": 本地运行 Storybook

  • "build-storybook": 编译打包 Storybook 项目

  • 在项目根目录创建 .storybook 文件夹,添加默认配置:

  • main.js:项目的全局配置文件,定义了 story 的查找路径,以及引入的插件。

  • preview.js:项目的渲染配置,包括全局样式的引入,通用性的变量等。

  • tsconfig.json:自动识别项目采用 typescript 后自动生成的配置文件

  • 在 src/stories 目录下创建三个组件(button、header、page),以及它们的 story 示例

文件说明

main.js

module.exports = {
"stories": [ // 组件Stories目录所在 —— Storybook会载入配置路径下的指定文件渲染展示
"../stories/**/*.stories.mdx",
"../stories/**/*.stories.@(js|jsx|ts|tsx)"
],
"addons": [ // Storybook所用插件 —— Storybook功能增强
"@storybook/addon-links",
"@storybook/addon-essentials"
],
"framework": "@storybook/vue3" // Storybook所用框架 —— Vue环境支持
}

该文件定义StoryBook与编译相关的配置。

preview.js

// .storybook/preview.js
import elementPlus from 'element-plus';
import { app } from '@storybook/vue3'

app.use(elementPlus);
export const decorators = [
(story) => ({
components: { story, elementPlus },
template: '<elementPlus><story/></elementPlus>'
})
];
import "element-plus/lib/theme-chalk/index.css";

export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
}
}

该文件引入全局依赖,定义StoryBook渲染相关的配置。

配置按需加载后,import elementPlus from 'element-plus';导入elementPlus报错:elementPlus is not defined —— 全局加载、按需加载不能在同一项目中使用。

按需加载

在需要使用ElementPlus的Stories中直接引入即可:

// SubmitForm.stories.ts
import { ElButton } from 'element-plus';
import SubmitForm from "./index";
import { SchemaType, RuleTrigger } from "./src/schemas/baseSchema";
const caseSchema = [
{
key: "moduleName",
name: "title",
type: SchemaType.Text,
label: "栏目名称",
placeholder: "请输入栏目名称",
attrs: {
//
},
rules: [
{
required: true,
message: "栏目名称必填~",
trigger: RuleTrigger.Blur,
},
],
},
...
];
export default {
title: "ui组件/SubmitForm",
component: SubmitForm,
};
const Template = (args: any) => ({
components: { SubmitForm, ElButton },
setup() {
return {
...args,
};
},
template: '<submit-form :schema="schema" ref="submitFormRef"></submit-form><el-button @click="submit">提交</el-button>',
});
export const 基本应用 = Template.bind({});
(基本应用 as any).args = {
schema: caseSchema,
};

拓展项目

因为项目是用sass,所以需要增加

yarn add -D @storybook/preset-scss [email protected] sass [email protected] [email protected]

如果是vue-cli,只需

yarn add -D @storybook/preset-scss  sass sass-loader css-loader style-loader

在项目 .storybook/main.cjs,增加"@storybook/preset-scss", "@storybook/addon-postcss", 《​​写vue3+ jsx+ts语法+ storybook展示的组件库​​》

module.exports = {
"stories": [
"../src/**/*.stories.mdx",
"../src/**/*.stories.@(js|jsx|ts|tsx)"
],
"addons": [
"@storybook/preset-scss",
"@storybook/addon-postcss",
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions"
],
"framework": "@storybook/vue3",
"core": {
"builder": "@storybook/builder-vite"
},
"features": {
"storyStoreV7": true
}
}


当然还可以安装更多的插件,详情《​​storybook插件说明: integrations与addons推荐​​》



转载​​本站​​文章《​​ vite/storybook/rollup搭建一个自己的组件库​​》,
请注明出处:​​https://www.zhoulujun.cn/html/webfront/ECMAScript/storybook/8892.html​

标签:story,Storybook,rollup,插件,storybook,stories,vite,addon
From: https://blog.51cto.com/zhoulujun/6129688

相关文章

  • vite/storybook/rollup搭建一个自己的组件库
    构建测试项目首先vite初始化一个项目vue create story-book-demo## 或者 vue create story-book-demo然后添加storybook,具体参看官网:https://storybook.js.or......
  • storybook组件属性详解:组件props到strorybook Args
    首先我们查看官方文档:https://storybook.js.org/docs/vue/writing-docs/doc-block-argstable#customizing官方的例子么有看到v-model如何处理,数组、对象等复杂属性定义。......
  • storybook添加全局样式与sass全局变量设置
    storybook组件需要全局样式,只需在.storybook/preview.js增加全局样式即可。import '../src/style/index.scss';export const parameters = {  actions: { arg......
  • storybook 编写stories的story基础语法
    编写storiesstory用于展示组件某个状态,每个组件可以包含任意多个story,用来测试组件的各种场景。根据默认配置,只需要在组件的文件夹中,以 **.component.stories.ts 的......
  • storybook插件说明: integrations与addons推荐
    官方的:https://storybook.js.org/integrations/https://github.com/storybookjs/storybook/blob/master/ADDONS_SUPPORT.md 我所推荐的的三个: yarn add -D @stor......
  • vue3+vite+vant文件上传
    1:文件上传下载1//上传文件2constafterRead=()=>{3for(letfileoffileList.value){4//1:加载状......
  • 使用vscode + vite + vue3+ vant 搭建vue3脚手架
    【术栈】开发工具:VSCode代码管理:Git前端框架:Vue3构建工具:Vite路由:vue-router4x状态管理:vuex4xAJAX:axiosUI库:vant数据模拟:mockjscss预处理:sass构建vue3项目1,安装 vite......
  • webpack、vite、vue-cli、create-vue 的区别
    首先说结论Rollup更适合打包库,webpack更适合打包项目应用,vite基于rollup实现了热更新也适合打包项目。功能工具工具脚手架vue-clicreate-vue构建项目 vit......
  • vue3 + vite 分析报告 report == rollup-plugin-visualizer
    安装插件 npmirollup-plugin-visualizer-D 配置vite.config.js文件【加入插件】import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'......
  • vue3-vite-cesium
     cesium中文网http://cesium.xin/ 优秀的学习资源http://cesium.xin/wordpress/archives/130.html  vite-plugin-cesiumvite社区插件安装cesiumhttps://git......