将 @fontface 添加到 Storybook

San*_*rén 1 fonts font-face storybook

我在 create-react-app 中创建了一本 Storybook,我想为其添加一个字体。我的组件正在使用 css-modules(也许这是有用的信息)。

所以,我在 .storybook 中创建了一个 webpack.config.js ,它看起来像这样:


module.exports = async ({ config }) => {
  config.module.rules.push({
    test: /\.(woff|woff2|eot|ttf|svg)$/,
    use: [
      {
        loader: 'file-loader',
        query: {
          name: '[name].[ext]',
        },
      },
    ],
    include: path.resolve(__dirname, '../'),
  });

  return config;
};
Run Code Online (Sandbox Code Playgroud)

在 Preview-head.html (在 .storybook 中)我有

<style>
    @font-face {
      font-family: 'WalsheimPro';
      font-style: normal;
      font-weight: 400;
      src: url('shared/fonts/GTWalsheimProMedium.ttf') format('truetype');
    }
</style>
Run Code Online (Sandbox Code Playgroud)

我的字体不起作用,知道为什么吗?您还需要其他信息来帮助我吗?谢谢 :)

San*_*rén 7

好的,所以我不需要 webpack.config.js 文件。我删除了它,但将 package.json 中的路径从 public 更改为 ./src

    "storybook": "start-storybook -p 6006 -s ./src",
    "build-storybook": "build-storybook -s ./src",
Run Code Online (Sandbox Code Playgroud)

检查上面的答案的链接:)

  • 现在[⚠️已弃用]。通过使用 `staticDirs: ['../public']` 为您的公共目录提供服务来使用新的解决方案 (3认同)