8

私は Typescript プロジェクトで Leaflet ライブラリをうまく動かそうとしています。

私のプロジェクトは commonJs パターン (ソース ファイルの imports\exports) に従いますが、webpack でビルドするとL、leaflet モジュールによって公開されたグローバルにアクセスしようとすると、ファイルから次のエラーがコンパイラに表示されます。

'L' は UMD グローバルを指しますが、現在のファイルはモジュールです。代わりにインポートを追加することを検討してください。

次のようにリーフレットをソース ファイルにインポートすると、これを回避できます。

import * as L from 'leaflet'

しかし、ファイルごとにインポートすることなく、すべてのファイルでグローバルに t にアクセスできるかどうか疑問に思っていました。

私は掘り下げて、次のように独自のグローバルを宣言できるいくつかの回避策を見つけました。

globals.d.ts

import * as L from "leaflet";

declare global {
  const L: L
}
export {};

これが推奨されているかどうかはわかりませんが、少し汚いハックのように感じます.commonJsプロジェクトのUMDモジュールによって公開されたグローバルを提供するためのwebpack構成の適切な方法はありますか?それともナンセンスですか? モジュールの種類とそれらの互換性の違いを理解しようとして混乱していることは認めます。

4

1 に答える 1