問題タブ [umd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4805 参照

typescript - Typescript プロジェクトのモジュールで umd グローバルを使用する

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

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

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

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

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

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

globals.d.ts

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

0 投票する
2 に答える
4431 参照

angular - Angular 5 - 名前からコンポーネントを文字列としてインスタンス化する

を使用してコンポーネントを初期化する方法を知っていますComponentFactoryResolver.resolveComponentFactory(AComponentType)

しかし、メソッドは a を期待Typeしていますが、私のコードでは型の名前を a として持っていstringます。

Angular API で解決する方法はありstringますか? Typeそうでない場合、TypeScript で文字列を a に変換するにはどうすればよいですか?

上記のいずれも不可能な場合は、マップに頼りますが、インスタンス化する必要があるコンポーネントは、リモートでフェッチされた UMD 角度コンポーネント ライブラリから取得されるため、それほど簡単ではありません。