@storybook/Angular 无法在故事索引上加载 scss 文件

2024-01-26

我一直在尝试在我的角度项目中使用故事书,并且我使用本指南https://storybook.js.org/basics/guide-angular/ https://storybook.js.org/basics/guide-angular/我将推荐的 webpack 配置用于 sass 文件的 sass 加载器,并且与项目相关的 scss 文件工作正常,但如果我在故事 index.ts 文件中导入 scss 文件,则不会加载该文件。

故事/index.ts

import { storiesOf } from '@storybook/angular';
import { action } from '@storybook/addon-actions';
import { VideoPosterComponent } from '../src/app/modules/ui-common/video-poster/video-poster.component';
//This scss it is not loaded
import '../src/styles.scss';

storiesOf('Video Poster component', module)
  .add('Video Poster with author data', () => ({
    component: VideoPosterComponent,
    props: {
        title: "Cinemagraph With Custom title",
        subtitle: "This is a custom subtitle!"
    }
  }))
  .add('Video Poster without author data', () => ({
    component: VideoPosterComponent,
    props: {}
  }));

.storybook/webpack.config.js(这里推荐-->https://storybook.js.org/basics/guide-angular/#configure-style-rules https://storybook.js.org/basics/guide-angular/#configure-style-rules)

const genDefaultConfig = require('@storybook/angular/dist/server/config/defaults/webpack.config.js');

module.exports = (baseConfig, env) => {
  const config = genDefaultConfig(baseConfig, env);

  // Overwrite .css rule
  const cssRule = config.module.rules.find(rule => rule.test && rule.test.toString() === '/\\.css$/');
  if (cssRule) {
    cssRule.exclude = /\.component\.css$/;
  }

  // Add .scss rule
  config.module.rules.unshift({
    test: /\.scss$/,
    loaders: ['raw-loader', 'sass-loader'],
  });

  return config;
};

而且,我的组件的 scss 文件加载没有问题

src/app/modules/ui-common/video-poster/video-poster.component.ts

import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-video-poster',
  templateUrl: './video-poster.component.html',
  styleUrls: ['./video-poster.component.scss'] // this were loaded without problems
})
export class VideoPosterComponent implements OnInit {
  private hostUrl = 'https://s3-eu-west-1.amazonaws.com/video.gallereplay.com/portfolio/clients';
  private baseUrl = `${this.hostUrl}/jaegermeister/Cinemagraph_plain/1920x1080`;

  @Input()
  public videoUrls = {
    poster: `${this.baseUrl}/cinemagraph.jpg`,
    mp4: `${this.baseUrl}/cinemagraph.mp4`,
    webm: `${this.baseUrl}/cinemagraph.webm`,
  }
  @Input() public title = 'Custom Cinemagraph Productions';
  @Input() public subtitle = 'Exclusive Content for Businesses';

  constructor() { }

  ngOnInit() {
  }

}

存储库:https://github.com/gpincheiraa/storybook-components-sample https://github.com/gpincheiraa/storybook-components-sample

run npm install && npm run storybook用于检查故事书的运行情况。

我做错了什么?


我假设您和我一样正在寻找一种将 SASS 文件中的全局样式加载到 Angular Storybook 中的方法。我知道你问这个问题已经有一段时间了,但我在寻找实现此目的的方法时遇到了这个解决方案:https://github.com/storybookjs/storybook/issues/6364#issuecomment-485651328 https://github.com/storybookjs/storybook/issues/6364#issuecomment-485651328.

基本上,您可以在 Storybook 配置文件中加载全局样式。但是,您需要在导入路径中使用内联 webpack 加载器,以便 Storybook 能够正确加载它们。

import '!style-loader!css-loader!sass-loader!../src/styles.scss';

这对我来说很有效。最后我不必费心定制 webpack 配置。希望这能解决您的问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@storybook/Angular 无法在故事索引上加载 scss 文件 的相关文章

随机推荐

  • 如何强制 Flutter 重建/重绘所有 widget?

    有没有办法强制 Flutter 重绘所有小部件 例如 在区域设置更改后 Your Widget应该有一个setState 方法 每次调用该方法时 都会重新绘制小部件 文档 Widget setState https api flutter
  • 如何打开并查看Excel文件的XML结构?

    我想打开Excel文件的路径xl worksheets sheet1 xml 当我谷歌如何执行此操作时 一篇文章要求我将 Excel 文件重命名为 zip 然后解压缩该文件并检查结构 但即使在我压缩并解压 Excel 文件后 我也没有在提取
  • 如何在使用 GROUP BY 时返回数组

    现在 我有这样的疑问 SELECT COUNT AS Count SUM Ask AS Ask SUM Cost AS Cost Provider Factura FROM store items WHERE Provider NOT IN
  • 按键时从 NSTextField 发送操作而不是返回

    我想显示解除按键后新推文剩余的字符数 目前 只有在取消退货时才会发生这种情况 IBAction updateCharacterCountFromNewTweetField id sender newTweetCharacterCount s
  • 如何将活动指示器放在表格视图中间

    我已经设置了活动指示器 spinner center CGPointMake UIScreen mainScreen bounds size width 2 UIScreen mainScreen bounds size height 2
  • 较大的纹理图集会因内存压力而导致终止

    我正在 iOS Swift 中设计一款游戏 我有一个大约 100 个 1920x1080p PNG 的大型纹理图集 当我调用这些函数时 它会由于内存压力而导致应用程序崩溃 当我禁用该功能时 我的应用程序运行得很好 我可以通过编辑代码来防止这
  • MongoMapper(或任何其他 Mongodb 适配器)是否有类似“accepts_nested_attributes_for”的方法?

    我正在考虑在一个新项目中使用 mongodb 但在深入研究之前 我想知道它是否支持一些关键功能 我知道您不需要迁移 并且可以添加嵌入对象 但这是否意味着它的行为也就像 accepts nested attributes for 方法始终存在
  • 给定一组 0-9 的整数,在用完某个整数之前我能写的最后一个数字是多少?

    正如标题所说 给定一组整数 0 9 在用完某个整数之前我能写的最后一个数字是多少 因此 如果给我一个库存 比如从 0 到 9 的每个数字都有 10 个 那么在用完某个数字之前我可以写的最后一个数字是多少 例如 如果库存为 2 我可以写数字
  • 登录会员.NET

    您好 我想知道强制用户在到达 net 网站时登录的最佳方法是什么 我已经设置了会员功能 我想知道什么是最好的方法来确保无论用户到达哪个地址 他们都必须首先经过身份验证 然后才能进入他们请求的页面 任何资源都会很棒 谢谢 Alter Web
  • 尝试设置 .SSH 密钥以通过 Cygwin 连接到 Github

    我刚刚在 Windows 7 上安装了 Cygwin 来开发 RoR 应用程序 问题是我试图通过 Cygwin 将 Git 与我的 Github 帐户连接起来 但由于某种原因 当我运行命令时ssh keygen t rsa C email
  • Parse API - Facebook 登录无法在 iPhone 设备上运行

    当我点击 使用 Facebook 登录 按钮时 在 IOS 模拟器上它工作正常 获取 PFIzer 对象 然后 如果我在 iPhone 设备上运行相同的代码 则获取 PFUser 对象为 null 没有错误 Code func loginW
  • 表模块与域模型

    我问的是选择存储用户配置文件的方法 https stackoverflow com questions 429878 choosing a method to store user profiles前几天收到了大卫 托马斯 加西亚的有趣回应
  • 将多次出现的特殊字符替换为单个特殊字符

    我想删除多次出现的特殊字符 例如 从我的 java 字符串中通过一个下划线 我试过 replaceAll s 1 它似乎用下划线替换连续的相同类型的特殊字符 但否则不起作用 例如 Hello World becomes Hello Worl
  • 如何使用货币轨显示带有符号的价格

    鉴于这个简单Money对象查询 Money new 1000 USD to s gt 10 00 如何用其符号显示该值 我知道我可以打电话money object symbol但有些货币将符号放在值之前 而另一些货币则将符号放在值之后 我很
  • 如何获取ViewFlipper当前的子位置

    我已将一堆图像添加到 ViewFlipper 现在我正在 Flipper 中执行 onClick 事件 为此 我想知道当前的子位置 以便我可以在数组中执行一些操作 无论如何 有没有办法找出当前孩子的位置 使用它来获取当前的子位置 flipp
  • 离线网络应用程序加载时内容会消失几分之一秒

    我在 iOS 4 3 到 5 0 上观察到了这一点 当您创建一个简单的离线 Web 应用程序时 即一个 HTML 文件 一些资源 例如 CSS 和 JS 全部存在于缓存清单中 它可以离线工作 我在飞行模式下进行了测试 BUT 当您将这样的应
  • SDL_GetKeyboardState 不起作用

    我正在尝试使用 SDL 2 为游戏制作一个控制器 不想询问 gamedev 因为这不是直接的游戏问题 我使用 SDL GetKeyboardEvent 来查看导航箭头是否被按下 但它显然不起作用 如果按下其中一个键 它应该打印值 1 或 1
  • 使用 Cloud SDK CLI One-Liner 获取默认 GCP 项目 ID

    我正在寻找一个gcloud一行代码获取默认项目 ID GCP PROJECT ID The list命令给了我 gcloud config list core project gt core project GCP PROJECT ID Y
  • Logcat 显示空 SMPTE 2094-40 数据

    当我将设备连接到 android studio logcat 时 它不断显示此消息 Empty SMPTE 2094 40 data 有谁知道这是从哪里来的或如何阻止它 在Android Studio中 尝试使用这个过滤器 package
  • @storybook/Angular 无法在故事索引上加载 scss 文件

    我一直在尝试在我的角度项目中使用故事书 并且我使用本指南https storybook js org basics guide angular https storybook js org basics guide angular 我将推荐