首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在"storybook js“中提供静态文件

在"storybook js“中提供静态文件
EN

Stack Overflow用户
提问于 2019-10-07 18:39:21
回答 3查看 15K关注 0票数 9

我正在使用故事书文档,无法从assets文件夹加载图像。正如文档所说:“如果你使用的是一个自定义的Webpack配置,你需要将文件加载器添加到你的自定义的Webpack配置中”--我的webpack.config文件看起来像这样:

代码语言:javascript
复制
const path = require('path');


 module.exports = ({ config }) => {
    config.module.rules.push({
      test: /\.scss$/,
      use: ['style-loader', 'css-loader', 'sass-loader']
    });
 config.module.rules.push({
   test: /\.(ts|tsx)$/,
   use: [
     {
       loader: require.resolve('awesome-typescript-loader'),
     },
   ],
 });
 config.module.rules.push({
   test: /\.(svg|png|jpe?g|gif)$/i,
   use: [
     {
       loader: 'file-loader',
     },
    ]
  },);

  config.resolve.extensions.push('.ts', '.tsx')


  return config;
};

package.json:

代码语言:javascript
复制
"react": "^16.10.1",
"react-dom": "^16.10.1",
"typescript": "^3.6.3",
"@storybook/react": "^5.2.1",
"@types/storybook__react": "^4.0.2",
"file-loader": "^4.2.0"

这是在纱线故事书之后

似乎故事书文档中缺少了什么,或者我做错了什么:?谢谢任何能帮我解决这个问题的人。^_^

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-13 22:28:10

如果有人遇到同样的问题,试试下面的代码(我使用的是: storybook,react - without create react app,typescript):

第一个问题是关于typescript的,下面是我的工作:我在根文件夹中创建了custom.d.ts文件,并将以下代码放入其中:

代码语言:javascript
复制
declare module "*.svg" {
  const content: string;
  export default content;
}

declare module "svg-inline-react" 

然后在tsconfig.json中添加这个文件,如下所示:

代码语言:javascript
复制
"files": [
  "./custom.d.ts"
],

在那之后,错误-“找不到imageName.svg”消失了,但svg-inline-react仍然没有显示图标,现在问题在'webpack.config.js‘文件中,修复代码写在下面。

代码语言:javascript
复制
const path = require('path');

module.exports = ({ config }) => {

  config.module.rules = config.module.rules.map( data => {
    // This overrides default svg rouls of storybook, and after that we can use 
   //svg-inline-loader.
    if (/svg\|/.test( String( data.test ) ))
      data.test = /\.(ico|jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|cur|ani) 
 (\?.*)?$/;
    return data;
  });

    config.module.rules.push({
        test: /\.scss$/,
        use: ['style-loader', 'css-loader', 'sass-loader'],
      });
    config.module.rules.push({
      test: /\.(ts|tsx)$/,
      use: [
        {
          loader: require.resolve('awesome-typescript-loader'),
        },
      ],
    });
    config.module.rules.push({
      test: /\.svg$/,
      include: path.resolve(__dirname, '../'),
      loader: 'svg-inline-loader'
    });

    config.resolve.extensions.push('.ts', '.tsx')
    return config;
};

^_^

票数 4
EN

Stack Overflow用户

发布于 2019-11-23 10:15:42

在storybook-start脚本中配置静态文件夹对我有效:

文档:Static Files Via Directory

您还可以配置一个目录(或目录列表),用于在启动Storybook时搜索静态内容。您可以使用-s标志来做到这一点。

代码语言:javascript
复制
//package.json
{
"scripts": {
    "start-storybook": "start-storybook -s ./public -p 9001"
  }
}

祝你好运。

票数 6
EN

Stack Overflow用户

发布于 2020-02-11 03:46:43

要解决此问题,请执行以下操作:

我有以下文件夹结构

代码语言:javascript
复制
# root_folder

.storybook/
src/
package.json
...
...

我的图片文件夹就在src/resources/images/my_image.jpg里面

我通过添加-s ./修复了这个问题,如下所示

代码语言:javascript
复制
"storybook": "start-storybook -s ./ -p 9001"

希望这能有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58267903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档