搭建storybook--es6+react+less

1.新建项目文件夹

项目结构如下,其中src存放源代码,.storybook和stories为storybook做准备
这里写图片描述


2.项目初始化

cnpm init -y

3.安装storybook

cnpm install --save-dev @storybook/react

4.安装es6+react+react-dom+less

cnpm install --save-dev react react-dom es2015 less

5.安装loader

cnpm install --save-dev less-loader css-loader style-loader

6.新建文件webpack.config.js
.storybook/webpack.config.js

const path = require('path');
module.exports = (storybookBaseConfig, configType) => {
  storybookBaseConfig.module.rules.push({
    test: /\.less$/,
    loaders: ["style-loader", "css-loader", "less-loader"],
    include: path.resolve(__dirname, '../')
  });
  return storybookBaseConfig;
};

7.新建文件config.js
.storybook/config.js

import { configure } from '@storybook/react';

function loadStories() {
  require('../stories/index.js');
  // You can require as many stories as you need.
}

configure(loadStories, module);

8.配置运行脚本
package.json

"scripts": {
    "storybook": "start-storybook -p 9001 -c .storybook"
}

9.编写我们的第一个组件:Welcome
src/components/Welcome/Welcome.js

import React, {Component, PropTypes} from 'react';
import './welcome.less';

class Welcome extends Component {

  render() {
    const {name} = this.props;
    return (
      <div className="welcome">
        {name},Welcome to my storybook!!!!!!!
      </div>
    )
  }
}

export default Welcome;

src/components/Welcome/welcome.less

.welcome{
  color: red;
  font-size: 35px;
}

src/components/Welcome/index.js

import Welcome from './Welcome';
export default Welcome;

10.编辑stories
stories/Welcome.js

import Welcome from '../src/components/Welcome';
export default Welcome;

stories/index.js

import React from 'react';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';

import Welcome from './Welcome';

const name = "Linda";
storiesOf('storybook', module)
  .add('Welcome', () =>(
    <Welcome name={name}/>
));

11.运行storybook

cnpm run storybook

这里写图片描述


最后,给出完整的项目结构
这里写图片描述

再给出最终的package.json文件

{
  "name": "storybook",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "storybook": "start-storybook -p 9001 -c .storybook"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@storybook/react": "^3.2.12",
    "css-loader": "^0.28.7",
    "es2015": "^0.0.0",
    "less": "^3.0.0-alpha.3",
    "less-loader": "^4.0.5",
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "style-loader": "^0.19.0"
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值