storybook - ZhengJunChan/chan-ui GitHub Wiki

角色

开发时实时预览,开发后的项目文档

添加storybook

$ npx sb init

在开发环境运行storybook

$ npm run storybook

webpack配置

webpackFinal 中配置webpack

// .storybook/main.js

const path = require('path');

// Export a function. Accept the base config as the only param.
module.exports = {
  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.

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

添加sass

添加依赖

$ npm install css-loader sass-loader sass webpack style-loader --save-dev

添加webpack配置

// .storybook/main.js

const path = require('path');

// Export a function. Accept the base config as the only param.
module.exports = {
  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;
  },
};

报错

vue没有安装

错误:

ERR! Error: Cannot find module 'vue/dist/vue.esm-bundler.js'
ERR! Require stack:
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/framework-preset-vue3.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/presets.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core/dist/cjs/server.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core/server.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/bin/index.js
ERR!     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
ERR!     at Function.resolve (internal/modules/cjs/helpers.js:94:19)
ERR!     at Object.webpack (/Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/framework-preset-vue3.js:43:23)
ERR!     at /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/presets.js:274:28
ERR!     at async Object.start (/Users/chan/program/chan-ui/node_modules/@storybook/builder-webpack4/dist/cjs/index.js:95:16)
ERR!     at async Promise.all (index 0)
ERR!     at async storybookDevServer (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/dev-server.js:123:28)
ERR!     at async buildDevStandalone (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/build-dev.js:112:31)
ERR!     at async buildDev (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/build-dev.js:154:5)
ERR!  Error: Cannot find module 'vue/dist/vue.esm-bundler.js'
ERR! Require stack:
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/framework-preset-vue3.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/presets.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core/dist/cjs/server.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/core/server.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/index.js
ERR! - /Users/chan/program/chan-ui/node_modules/@storybook/vue3/bin/index.js
ERR!     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
ERR!     at Function.resolve (internal/modules/cjs/helpers.js:94:19)
ERR!     at Object.webpack (/Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/framework-preset-vue3.js:43:23)
ERR!     at /Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/presets.js:274:28
ERR!     at async Object.start (/Users/chan/program/chan-ui/node_modules/@storybook/builder-webpack4/dist/cjs/index.js:95:16)
ERR!     at async Promise.all (index 0)
ERR!     at async storybookDevServer (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/dev-server.js:123:28)
ERR!     at async buildDevStandalone (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/build-dev.js:112:31)
ERR!     at async buildDev (/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/build-dev.js:154:5) {
ERR!   code: 'MODULE_NOT_FOUND',
ERR!   requireStack: [
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/framework-preset-vue3.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/presets.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/core-common/dist/cjs/index.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/core-server/dist/cjs/index.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/core/dist/cjs/server.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/core/server.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/vue3/dist/cjs/server/index.js',
ERR!     '/Users/chan/program/chan-ui/node_modules/@storybook/vue3/bin/index.js'
ERR!   ]
ERR! }

原因:查看node_modules,没有安装vue模块 解决方案:找到node_modules/@storybook,查看package.jsonvue的版本,然后添加到根目录目录

// package.json
{
  "devDependencies": {
    "vue": "^3.0.0",
  },
}