Denoばた会議 Monthly 第17回

Deno v1.31

package.jsonのサポート

Denoがpackage.jsonを探索してくれます。

{
  "dependencies": {
    "chalk": "^5.2.0",
    "koa": "2"
  },
  "devDependencies": {
    "cowsay": "^1.5.0"
  },
  "scripts": {
    "hello": "cowsay Hello"
  }
}

package.jsonのサポート

package.jsondependenciesimportできます。

import chalk from "chalk"; // => `npm:chalk@^5.2.0`
import Koa from "koa"; // => `npm:koa@2`

const app = new Koa();

app.use((ctx) => {
  ctx.body = "Hello world";
});

app.listen(3000, () => {
  console.log(chalk.blue.bold("Listening on port 3000"));
});

package.jsonのサポート

deno taskscriptsを実行できます。

$ deno task hello
# `deno run -A npm:cowsay@^1.5.0 hello`が実行されます

std/nodeのDeno本体への組み込み

deno_stdで開発されていたNode.jsのポリフィルがDeno本体に組み込まれました。

std/nodeのDeno本体への組み込み

ユーザーへの影響は?

  • 起動時のhttps://deno.land/std/nodeのダウンロードが不要に
  • ポリフィルの実装にOpなどの仕組みが利用できるように
  • esm.shにもサポートが入りました (?target=denonext)

不安定機能の安定化

以下の機能が--unstableなしで利用できるようになりました。

  • Node-API
  • npmパッケージ(npm:URL)に依存したリモートモジュール
  • Deno.Command

deno bundleコマンドが非推奨化

$ deno bundle main.ts
Warning "deno bundle" is deprecated and will be removed in the future.
Use alternative bundlers like "deno_emit", "esbuild" or "rollup" instead.

... 省略 ...

今後は、deno_emitesbuildなどへの移行が推奨されています。

その他の話題

Aurae

コンテナやVM、プロセスなどの実行を管理する分散システムランタイム

AuraeScriptというTypeScriptベースのスクリプト言語を搭載しており、内部ではdeno_coreが使用されているようです。

Software Design 2023年3月号

@gorilla0513さんによるDenoのサーバサイド開発に関する記事の連載が開始されています。