Don*_*ana 11 typescript reactjs webpack webpack-4
我看到这个答案建议导入图像的语法如下所示(注释掉).在我的情况下,它没有成功(抱怨在该文件中找不到任何模块),我不得不切换到当前活动的语法.
// import Author from "../assets/author.png";
var Author = require("../assets/author.png");
Run Code Online (Sandbox Code Playgroud)
我可以想象的差异是我正在使用TypeScript(通过awesome- typescript -loader转换我的TSX 并加载我的PNG 文件加载器),他们似乎使用JSX.但就我的理解而言,这一切都转化为普通的JS并最终要求.
作为React的菜鸟,我不确定这种差异的原因是什么,但我也不确定要谷歌如何调查自己.
对于typescript而言,这比webpack本身更具问题,您可能需要在声明文件上声明模块.
创建一个 declarations.d.ts
更新你的tsconfig.json
"include": [
"./declarations.d.ts",
],
Run Code Online (Sandbox Code Playgroud)
把它放在那个文件上:
declare module '*.png';
Run Code Online (Sandbox Code Playgroud)
错误可能会消失.
您可以为图像声明一个模块,如下所示:
declare module "*.png" {
const value: any;
export default value;
}
Run Code Online (Sandbox Code Playgroud)
然后,您将能够像这样导入图像:
import AuthorSrc from "../assets/author.png";
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为 webpack 不支持开箱即用的图像导入。因此,您需要在 webpack 配置文件中添加一条规则。当您添加新规则时,TypeScript 不会自动知道这一点,因此您需要声明一个新模块来解决此问题。如果没有该模块,您将能够导入图像,但 TypeScript 会抛出错误,因为您没有告诉它这是可能的。
归档时间: |
|
查看次数: |
1616 次 |
最近记录: |