【问题标题】:Storybook webpack will not load scss filesStorybook webpack 不会加载 scss 文件
【发布时间】:2018-06-24 16:13:25
【问题描述】:

我在运行 storybook 时没有收到错误,但我的样式都没有加载。请帮忙。我正在使用 webpack 2.2.1。

我查看了所有 S.O.和无数的 G.H.问题答案无济于事。这是我的 .storybook 目录中的 webpack.config.js

const path = require('path');

module.exports = {
    module: {
        rules: [
          {
            test: /\.jsx?$/,
            exclude: /(node_modules|bower_components)/,
            loader: 'babel-loader'
          },
          {
            test: /\.scss$/,
            use: [
              'style-loader',
              'css-loader',
              'sass-loader'
            ],
            include: path.resolve(__dirname, '../client/styles')
          },
          {
            test: /\.(ttf|eot|woff|woff2|svg)$/,
            loader: 'file-loader'
          }
        ]
    }
}

这是我的故事目录中的 index.html:

import React from 'react';

import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';
import { linkTo } from '@storybook/addon-links';
import MenuOption from '../client/app/landingPage/components/menuOption'

import { Button, Welcome } from '@storybook/react/demo';
import { withInfo } from '@storybook/addon-info';
import '../client/styles/index.scss';


storiesOf('Welcome', module).add('to Storybook', () => <Welcome showApp={linkTo('Button')} />);

storiesOf('Component', module)
  .add('simple info',
    withInfo({
      text: 'String or React Element with docs about my component',
    })(() =>
    <MenuOption
      icon={'icon-knife'}
      text={"Orders to Cut Today"}
      isDisabled={false}
      isFocused={true}/>
    )
  )

这是我的 index.scss:

@import "basic";
@import "icons";
@import "_colors";
@import "_orders";
@import "_header";
@import "_navigation";
@import "_footer";
@import "_key-specification";
@import "_table-summary";
@import "_landing-page";
@import "_order-to-pack";
@import "_error";
@import "_instruction";
@import "_packed-boxes-table";
@import "_source-meat";
@import "_portion-sizes-table";
@import "_byproduct";
@import "components/index";

【问题讨论】:

  • 为了更容易调试,我首先将 webpack 输出设置为详细 webpack.js.org/configuration/stats 。您将能够看到加载的模块和文件输出。如果仍然无法正常工作,请告知 webpack 日志,谢谢
  • 我尝试将 stats: "verbose" 添加到我的 webpack 配置中,但输出中没有任何变化。 @DanielKhoroshko
  • 我已经在下面回答了
  • 你能解决这个问题吗?

标签: javascript reactjs webpack sass storybook


【解决方案1】:

这应该会有所帮助

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

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

  config.module.rules.push({
     test: /\.scss$/,
     use: [
       'style-loader',
       'css-loader',
       'sass-loader'
     ],
     include: path.resolve(__dirname, '../client/styles')
  });

  config.stats = 'verbose';

  config.resolve.extensions.push('.scss');

  return config;
};

【讨论】:

  • 不走运。仍然得到相同的输出(如下所示)并且没有加载 css :( ums-ui@0.0.1 storybook /Users/cperson/development/sysco/prime/prime-ui > start-storybook -p 9001 -c 。 storybook info @storybook/react v3.3.5 info 无法加载 ./.env.info => 加载自定义 .babelrc 信息 => 加载自定义 webpack 配置(完全控制模式)。 webpack 在 4434 毫秒内构建了 3a246797f12236605fda 信息 Storybook 开始于 => localhost:9001信息
  • 嗨!至少肯定有一些进展,因为它说“正在加载自定义 webpack 配置(完全控制模式)”。但是你怎么能知道它没有加载呢?你们删除'index.scss',webpack会产生错误吗?如果会,则意味着 index.scss 正在加载,只是可能不包含包含。路径中没有错误?如果至少部分将其上传到 github,带有故事书配置和样式文件,则可以查看
  • 好点。我删除了 index.scss 并收到此错误: ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./client/styles/index.scss 中的错误 模块构建失败:错误: ENOENT: no such file or directory, open '/Users/cperson/development/sysco/prime/prime-ui/client/styles/index.scss' 然后让我怀疑它是否导入成功,所以我删除了基本.scss 并收到此错误: ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./client/styles/index.scss 中的错误 模块构建失败:@import "basic";
  • 如果这些信息还不够,我可以创建一个精简版的我所拥有的并将它放在 github 上为您服务!非常感谢您的帮助。
  • 是的,我可以看看
猜你喜欢
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 2018-03-12
  • 2021-07-10
  • 2018-02-24
  • 1970-01-01
相关资源
最近更新 更多