使用storybook构建vue前端组件库

1、在指定文件夹初始化storybook项目

 

npx storybook init

2、使用storybook官方推荐脚手架

npx sb init --type vue

3、在package.js可以看到下列命令,执行npm run storybook即可

 4、vue项目本身是支持sass的无需配置,但是storybook需要额外配置。修改.storybook目录下main.js文件,添加webpackFinal段。

const path = require('path');
module.exports = {
  "stories": [
    "../src/components/**/*.stories.mdx",
    "../src/components/**/*.stories.@(js|jsx|ts|tsx)"
  ],
  "addons": [
    "@storybook/addon-links",
    "@storybook/addon-essentials",
    "@storybook/addon-interactions"
  ],
  "framework": "@storybook/vue",
  "core": {
    "builder": "@storybook/builder-webpack5"
  },
  webpackFinal: async (config, { configType }) => {
    // `configType` has a value of 'DEVELOPMENT' or 'PRODUCTION'
    // You can change the configuration based on that.
    // 'PRODUCTION' is used when building the static version of storybook.

    // Make whatever fine-grained changes you need
    config.module.rules.push({
      test: /\.scss$/,
      use: ['style-loader', 'css-loader', 'sass-loader'],
      include: path.resolve(__dirname, '../'),
    });

    // Return the altered config
    return config;
  },
}

高级版本需使用插件npm install @storybook/preset-scss

5、showCode显示

export const Primary = Template.bind({});
Primary.parameters = {
  docs: {
    source: { code: "<Layout></Layout>" },
  },
};

6、storybooky引入静态文件

1、在.storybook文件夹下创建preview-head.html文件,并引入需要引入的静态文件

<link rel="stylesheet" href="./iconfont.css" />
<script src="./ailabel.js"></script>

2、修改package.json命令行,指定静态文件目录

    "storybook": "start-storybook -p 6006 -s public,src/iconfont,src/libs",
    "build-storybook": "build-storybook -s public,src/iconfont,src/libs"

3、重新启动项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值