Edited at

CoffeeScript2でDynamic Importする方法

(この人、2019年になってもまだCoffeeScriptつかっている・・・。)


Dynamic Importって?

モダンブラウザで使える、必要になったときに非同期でモジュールをインポートできるやつです。

以下のように使えます。


javascript

import("jsziptools/zip").then((zip) => {

zip.unpack(hoge)
})

// or

async function foo() {
const zip = await import("jsziptools/zip")
zip.unpack(hoge)
}



CoffeeScript2で

Dynamic ImportはCoffeeScript2ではまだ実装されていません(v2.3.2時点)。

なのでEmbedded JavaScript機能を使う必要があります。

CoffeeScript2では``で囲った部分がJavaScriptとして解釈されます。

なので上記のJavaScriptの例はCoffeeScript2では以下のように書けます。


CoffeeScript2

`import("jsziptools/zip")`.then (zip) =>

zip.unpack(hoge)

# or

foo() ->
zip = await `import("jsziptools/zip")`
zip.unpack(hoge)


以上です。