我正在尝试在Typescript项目中导入.png文件,但是找不到该模块。我正在使用Parcel作为编译器,并且想添加类型定义。我找不到包裹的相关信息,该如何专门针对Parcel做到这一点?
答案 0 :(得分:1)
Parcel依赖于由tsconfig.json配置的打字稿编译器。相关文档可以在here
中找到除其他外,该配置还允许您指定要编译的源文件。以下是有效的配置,src路径中的所有.ts
和.d.ts
文件都将由编译器处理:
{
"include": [
"src/**/*"
]
}
除此之外,许多节点模块还附带打字稿定义。它们是handled by this rule:
默认情况下,所有可见的“ @types”软件包都包含在您的 汇编。任何封闭文件夹的node_modules / @ types中的软件包 被认为是可见的;具体来说,这意味着 ./node_modules/@types/,../node_modules/@types/, ../../node_modules/@types/,依此类推。
如果找不到应该处理.png文件的模块,则可能是因为它没有开箱即用的打字稿定义。 有一个repository收集许多节点模块的类型定义。也许在那里找到了定义。 Maybe these?
There is also an example了解如何安装定义。
该模块可能还没有类型定义。在这种情况下,您必须提出自己的建议。这不一定像听起来那样糟糕。通常,您可以创建一个最小限度的声明文件,其中仅包含您实际使用的几种方法。这是docs上的内容,请看一下示例。
编辑:
忘记提及:这听起来与包裹无关。在后台,Parcel只是在调用打字稿编译器本身。剔除中间人可以使错误消息更易于理解。您可能想要尝试直接调用Typescript编译器并对其进行配置,直到处理完所有错误和警告为止。这将更加直接,并掩盖了Parcel增加的复杂性。如果打字稿编译器满意,Parcel也应该可以正常工作。
答案 1 :(得分:0)
通过使用declare module "*.png";
将globals.d.ts添加到项目中来解决此问题
在里面。