reactjs - Webpack 和 Typescript 图片导入

标签 reactjs typescript webpack

我正在开发一个 React 应用程序并使用 WebpackTypescript。我想在 <img/> 之一中使用图像标签。但是,我没有找到访问图像文件的正确方法。

webpack.config.js:

 ...
 module: {
        rules: [
            ...
            {
                test: /\.(png|jpe?g|svg)$/,
                loader: 'file-loader',
                options: {
                    name: 'assets/[name].[ext]',
                }
            }
        ]

app.tsx:

...
render() {
    return <img src='/assets/logo-large.png' alt="logo"/>
}

运行应用程序时,assets/logo-large.png找不到资源。

最佳答案

或者,在您的 custom_typings 文件夹中(如果有的话),您可以添加一个新的 import-png.d.ts 文件:

declare module "*.png" {
  const value: any;
  export default value;
}

因此您可以使用以下方式导入图像:

import myImg from 'img/myImg.png';

或者,正如@mario-petrovic 所报告的,您有时需要使用不同的导出选项,如下所示(export = syntax)。参见 here两种方法的区别:

declare module "*.png" {
  const value: any;
  export = value;
}

在这种情况下,您可能需要将图像导入为:

import * as myImg from 'img/myImg.png';

关于reactjs - Webpack 和 Typescript 图片导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638454/

相关文章:

javascript - RxJS 使用两个参数订阅

javascript - webpack 缩小 HtmlWebpackPlugin

reactjs - Material UI CardHeader 操作下拉列表

node.js - 使用 sequelize 更新数据

reactjs - 如何测试渲染的 React 组件的 HTML?

webpack - 在 Next.js 中编译 npm 模块

json - vuex 商店可以在开发服务器中使用,但不能在生产版本中使用

javascript - __WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.createPortal 不是函数

reactjs - 如何将 SignaturePad 与 React TypeScript 一起使用

typescript - 成员的多种类型签名,TypeScript 中的联合类型