【问题标题】:Parcel - How do I add type definitions?Parcel - 如何添加类型定义?
【发布时间】:2019-11-29 18:02:17
【问题描述】:

我正在尝试在我的 Typescript 项目中导入一个 .png 文件,但找不到该模块。我使用 Parcel 作为我的编译器,我想添加类型定义。由于找不到任何相关信息,我该如何专门为 Parcel 执行此操作?

【问题讨论】:

  • parcel 调用 typescript 编译器,该编译器又使用 tsconfig.json 文件进行配置。您可以在那里编辑类型定义文件的路径。不过,我不确定这与 .png 文件有什么关系

标签: typescript parcel


【解决方案1】:

Parcel 依赖于 tsconfig.json 配置的 typescript 编译器。相关文档可见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 文件的模块,这可能是因为它没有开箱即用的 typescript 定义。 有一个 repository 收集许多节点模块的类型定义。也许你在那里找到定义。 Maybe these?

There is also an example 了解如何安装定义。

也有可能该模块尚不存在类型定义。在这种情况下,您将不得不提出自己的想法。这并不一定像听起来那么糟糕。通常,您可以创建一个仅涵盖您实际使用的少数方法的最小声明文件。这是上面的docs,看看例子。

编辑:

忘了提一下:这听起来与 Parcel 无关。在后台,Parcel 只是调用 typescript 编译器本身。去掉中间人可以使错误消息更容易理解。您可能想尝试直接调用 typescript 编译器并对其进行配置,直到处理完所有错误和警告。这将更直接,并隐藏 Parcel 增加的复杂性。如果 typescript 编译器满意,Parcel 应该也能正常工作。

【讨论】:

  • 如何直接调用typescript编译器进行配置?我是新手,所以你刚才说的对我来说是火箭科学。
【解决方案2】:

通过使用declare module "*.png"; 将 globals.d.ts 添加到项目中来解决它 在里面。

【讨论】:

猜你喜欢
  • 2011-08-10
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2013-08-10
  • 1970-01-01
  • 2018-07-15
相关资源
最近更新 更多