javascript - 使用带有故事书的全局 scss

标签 javascript storybook

我是故事书的新手。
我有一个 .scss全局使用的文件。我想从故事书中导入这个文件。
所以我制作了 .storybook/config.js 文件并在里面导入 scss。但它告诉我错误。
错误

ERROR in ./styles/style.scss (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src!./node_modules/sass-loader/dist/cjs.js!./node_modules/sas
s-resources-loader/lib/loader.js!./styles/style.scss)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Invalid CSS after "v": expected 1 selector or at-rule, was 'var api = require("'
        on line 1 of C:\Users\Walter\WebstormProjects\closet-next\styles\style.scss
>> var api = require("!../node_modules/style-loader/dist/runtime/injectStylesIn
   ^

 @ ./styles/style.scss 2:26-346 43:4-64:5 46:18-338
 @ ./.storybook/config.js
 @ multi ./node_modules/@storybook/core/dist/server/common/polyfills.js ./node_modules/@storybook/core/dist/server/preview/globals.js ./node_modules/@storybook/addon-docs/dist/frameworks/common/config.js ./node_modules/@storybook/addon-docs/dist/frameworks/react/config.js ./.
storybook/config.js ./node_modules/@storybook/addon-knobs/dist/preset/addDecorator.js ./.storybook/generated-entry.js (webpack)-hot-middleware/client.js?reload=true&quiet=true

什么是问题?这是 main.js
main.js
const path = require('path');

module.exports = {
  stories: ['../stories/**/*.stories.(js|mdx|tsx)'],
  addons: [
    '@storybook/addon-actions',
    '@storybook/addon-links',
    '@storybook/addon-knobs',
    '@storybook/preset-scss',
    {
      name: '@storybook/preset-typescript',
      options: {
        tsLoaderOptions: {
          configFile: path.resolve(__dirname, './tsconfig.json'),
        },
        forkTsCheckerWebpackPluginOptions: {
          colors: false, // disables built-in colors in logger messages
        },
        include: [path.resolve(__dirname, '/')],
        transpileManager: true,
      },
    },
    {
      name: '@storybook/addon-docs',
      options: {
        configureJSX: true, 
        babelOptions: {},

      },
    },
  ],
  parameters: {
    docs: {
      inlineStories: false, 
    },
  },
  webpackFinal: config => {
    config.module.rules.push({
      test: /\.scss$/,
      use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader', 'sass-resources-loader'],
    });
    return config;
  },
};

最佳答案

只需将此行添加到 .storybook/preview.js 的顶部即可那么一切都应该很好

import '!style-loader!css-loader!sass-loader!../src/globalStyles/global.scss';
还要记得安装 dev 依赖项
yarn add -D style-loader css-loader sass-loader

关于javascript - 使用带有故事书的全局 scss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62654080/

相关文章:

Javascript 函数结果在 Firefox 中不显示

JavaScript 嵌套函数交叉引用

angular - 如何在 Angular Story Book 中包含字体包和 CSS 框架?

angular - Storybook Angular NX 工作区 : How to publish using Chromatic?

javascript - jQuery 在加载图像之前获取图像高度?

javascript - addClass 活跃到 Bootstrap 导航

javascript - 从 JSON 中提取信息

css - Storybook - 从 Assets 文件夹中包含 css 返回 "Refused to include..."错误

reactjs - Tailwind 3.0.23 类未在故事书中实时应用

vue.js - Vuex & Storybook : Cannot set reactive property on undefined, null,或原始值:未定义