Chapter 08

サードパーティモジュールを使ってみよう

uki00a
uki00a
2022.09.05に更新

deno_stdを使ってみようの章では、Denoの標準ライブラリであるdeno_stdについて解説しました。

しかし、欲しい機能がdeno_stdでは提供されていないこともあるかと思います。

その場合は、サードパーティモジュールの利用を検討するとよいです。

この章では、サードパーティモジュールの使用方法について解説します。

deno.land/xからサードパーティモジュールを利用する

deno.land/xとは、Denoの公式のモジュールレジストリです。

試しに、DenoのSQLiteモジュールであるdeno-sqlitedeno.land/xから利用してみます。

以下のようなファイルを用意してみましょう。

sample.ts
import { DB } from "https://deno.land/x/sqlite@v2.4.0/mod.ts";

const db = new DB(":memory:");
db.query("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
db.query("INSERT INTO users (name, age) VALUES (?, ?)", ["hoge", 20]);
db.query("INSERT INTO users (name, age) VALUES (?, ?)", ["piyo", 30]);
for (const [name, age] of db.query("SELECT name, age FROM users")) {
  console.log({ name, age });
}
db.close();

Denoでサードパーティモジュールを利用するときは、上記のようにimport文でモジュールの配信元のURLを指定します。

試しに、上記のファイルを実行してみましょう。

$ deno run sample.ts

実行すると、依存しているサードパーティモジュールがダウンロードされると思います。

Denoでは、一度ダウンロードされたモジュールはJavaScriptコードへトランスパイルされた上で、ローカルのファイルシステムへキャッシュされます。

そのため、すでにキャッシュ済みのサードパーティモジュールに依存したコードは起動が高速化されます。

サードパーティモジュールの探し方

Deno向けに書かれた多くのサードパーティモジュールは、以下のレジストリで公開されています。

基本的には、これらのレジストリからモジュールをimportするとよいでしょう。

使いたいモジュールを探したいときは、以下のページなどから探すとよいです。

npmパッケージを使いたい

場合によっては、Denoからnpmパッケージを使いたいというケースも出てくるかもしれません。

そのような場合については、npmパッケージを使用するページで解説していますので、よろしければそちらを参照ください。

ポイント