deno.json(c)でのImport Mapsの定義がサポート// deno.jsonc
{
"imports": {
"dax": "https://deno.land/x/dax@0.24.0/mod.ts"
}
}
deno.json(c)の内容を元に、bare specifierを解釈してくれます。
import { $ } from "dax";
await $`echo foobar`;
deno fmtでセミコロンの有無を制御できるようにdeno.jsonのfmt.options.semiColonsオプションでdeno fmtのセミコロンの有無を変更できます。
{
"fmt": {
"options": {
"semiColons": false
}
}
}
Deno.permissionsに同期バージョンのAPIが追加Deno.permissions名前空間にquerySync()/requestSync()/revokeSync()が追加されました。
const status = Deno.permissions.querySync({ name: "env", variable: "DENO_DIR" });
if (status.state === "granted") {
const denoDir = Deno.env.get("DENO_DIR");
console.info(denoDir);
}
Deno.spawn/Deno.spawnSync/Deno.spawnChildの削除今後はDeno.Commandの使用が推奨されます。
const command = new Deno.Command("deno", {
args: ["info", "--json"],
});
const status = await command.output();
if (status.success) {
console.info(new TextDecoder().decode(status.stdout));
}
deno.json(c)でのロックファイルの挙動の制御ロックファイルの無効化:
{
"lock": false
}
ロックファイルの名前のカスタマイズ:
{
"lock": "./lock.json"
}
deno checkコマンドで--allオプションがサポート以下のコマンドで、リモートモジュールも含む全ファイルの型チェックが有効化されます。
$ deno check --all mod.ts
deno check --remoteでも同様の振る舞いを実現できますが、今後は上記の--allを指定した形式が推奨されます。
deno:URLのサポートimport $ from "deno:dax@24.0";
await $`echo foobar`;
上記のコードでは/x/dax@0.24.0/mod.tsがimportされます。
package.jsonのサポート{
"type": "module",
"scripts": {
"main": "deno run -A main.ts"
},
"dependencies": {
"chalk": "^5.0",
"deno-redis": "deno:redis@~0.29.0/mod.ts"
}
}
package.jsonのサポートDenoはpackage.jsonのdependenciesを元にbare specifierを解釈してくれます。
import { connect } from "deno-redis";
import chalk from "chalk";
const redis = await connect({
hostname: "127.0.0.1",
port: 6379,
});
const value = await redis.get("foo");
console.log(chalk.blue.bold(value));
package.jsonのサポートpackage.jsonのscriptsをdeno taskで実行できます。
$ deno task main
node:URLのサポート (v1.30.0でサポートされました)deno.json(c)でのImport mapsの定義 (v1.30.0でサポートされました)deno bundleコマンドの非推奨化npmパッケージのサポートを導入した背景や、Denoの将来などに関する話が行われています。
ShadowRealmなどを活用したパッケージごとのパーミッション管理のサポートについて--allow-writeを指定した際は、ファイルシステム全体ではなく、カレントディレクトリ配下への書き込みのみを許可すべきでは?