https://zenn.dev/uki00a/articles/frontend-development-in-deno-2022-autumn
半年程前に以下のような記事を書きました。
この半年の間に、Deno本体でnpmパッケージサポートが入るなどいくつか大きな動きがあったため、この記事ではそれらの動向について紹介いたします。
Deno v1.27時点では、Denoからnpmパッケージを利用するには--unstable
が必要です。
安定化については、今月リリースされる予定のDeno v1.28にて実施されることが検討されています。
• https://github.com/denoland/deno/pull/16473
Deno v1.25でDeno本体にnpmパッケージのサポートが入りました。
以下のように、npm:<パッケージ名>[@<バージョン>]
形式のURLを指定することで、Denoからnpmパッケージを直接import
することができます。
deno.land/xなどで公開されているパッケージと同様に、npm:
で指定されたnpmパッケージについては、deno run
などのコマンドを実行する際に、npmレジストリから自動的にダウンロードされ、グローバルキャッシュ(DENO_DIR
)に保存されます。
TypeScriptの型定義が同梱されたnpmパッケージについては、deno check
などのコマンドを実行した際に、自動で型チェックを行ってくれます。
もし型定義ファイルが含まれないパッケージに対しても型チェックを適用したい際は、以下のように@deno-types
ディレクティブで型定義を指定する必要があります。
// @deno-types="npm:@types/[email protected]"
import Koa from "npm:[email protected]";
const app = new Koa();
app.use(async ctx => {
ctx.body = "Hello Deno!";
});
app.listen(3000);
Deno本体にnpmパッケージのサポートが入ったことにより、DenoでViteが動かせるようになりました。
create-vite-extra
というパッケージではDenoでViteを使用して開発するためのテンプレートが提供されています。
以下のコマンドを実行すると、プロジェクトを生成することができます。
$ deno run --unstable --allow-env --allow-read --allow-write npm:create-vite-extra@latest
以下はdeno-vue
テンプレートを使用した際に生成されるvite.config.mjs
の例です。