vue.js - Storybook nuxt build 不包括装饰器
问题描述
TLDR:nuxt + 故事书 + vuetify 构建的问题
我使用 Nuxt.js、Vuetify 和 Storybook 创建了一个新项目。
Storybook 开发服务器运行良好,我只需在 nuxt 配置中添加一个装饰器:
// nuxt.config.js
storybook: {
decorators: [
// VApp decorator for Vuetify
'<v-app><div><story/></div></v-app>',
],
},
唯一的问题似乎是在运行构建时它不会加载装饰器,因此故事书不能正确地表示视觉方面。
// package.json
"storybook": "nuxt storybook",
"storybook:build": "nuxt storybook build"
注意:我确实使用了官方的nuxt 故事书
开发示例:
构建示例:
解决方案
好的,所以我花了一些试验和错误,但我已经成功了。
1) 将 Vuetify 添加为插件
我们要做的第一件事是vuetify.js
在插件目录中创建一个文件
.
├── plugins
│ └── vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify';
import colors from 'vuetify/es5/util/colors';
import { themes } from '~/config/themes';
import 'vuetify/dist/vuetify.min.css';
Vue.use(Vuetify);
export default (ctx) => {
const vuetify = new Vuetify({
customVariables: ['~/assets/variables.scss'],
treeShake: true,
options: {
customProperties: true,
},
theme: {
themes: {
light: {
...themes.light,
},
},
},
});
ctx.app.vuetify = vuetify;
ctx.$vuetify = vuetify.framework;
};
2) 更新 nuxt 配置以加载 Vuetify
在您nuxt.config.js
确保删除 Vuetify 配置并将 vuetify 添加为插件,如下所示:
// nuxt.config.js
plugins: ['@/plugins/vuetify.js'],
3) 添加故事书装饰器
添加一个 Vuetify 装饰器以在所有 Storybook 故事中支持 Vuetify。
在您nuxt.config.js
添加以下装饰器
// nuxt.config.js
storybook: {
// Options
decorators: [
// VApp decorator for Vuetify
`<v-app id='vuetify-storybook-decorator'><div><story/></div></v-app>`,
],
},
4) 修复故事书的可见性
为了防止eatch story占据屏幕高度并允许在视图中呈现多于一个故事,我们将仅在storybook中覆盖默认的vuetify min-height;
在你的nuxt.config.js
文件中加载一个storybook.scss
这样的
// nuxt.config.js
// Global CSS (https://go.nuxtjs.dev/config-css)
css: ['@/assets/storybook.scss'],
并在您的资产文件夹中添加storybook.scss
文件:
.
├── assets
│ └── storybook.scss
/* storybook.scss */
#vuetify-storybook-decorator {
// Remove the storybook full height of all components
.v-application--wrap {
min-height: unset;
}
}
5) 构建项目
将构建命令添加到您的package.json
// package.json
{
"storybook": "nuxt storybook",
"storybook:build": "nuxt storybook build"
}
然后在命令行中运行yarn storybook:build
构建将被放置在/storybook-static
;您可以通过在该文件夹上运行任何服务器来查看构建,例如:
$ npx http-server ./storybook-static
就是这样,我希望它会有所帮助:)
推荐阅读
- android - 我必须使用 Android X 吗?
- c++ - 使用镶嵌着色器中的 TBN 矩阵从 perlin 噪声计算测地球上的地形法线
- unix - Unix md5sum 命令是比较两个文件内容的正确方法吗
- java - 如何禁用 Javalin 日志记录
- excel - 从 2 个不同大小的数组创建第三个数组
- python - 将 Flask-OIDC 与本地 OpenID 连接服务器一起使用
- pyspark - 百分比计算并分配给同一数据框中的新列
- android - 为什么在屏幕关闭的情况下无法录制视频?
- python - 是否有用于像素邻居探测的 Python (np/cv2/etc.) 函数?
- javascript - 如何获取已加载广告的 id?