753 文字
4 分

Frontend Weekly 2024-10-11

Deno v2.0#

Deno v2 がリリースされた。

https://deno.com/blog/v2.0

window オブジェクトの削除#

ブラウザ互換を目的としてグローバルに追加されたが混乱の元になっていたため削除された。 現在は globalThis の利用を推奨している。

process オブジェクトのグローバルへの追加#

Node.js 互換を目的として、グローバルに追加された。 今までnode:processからのインポートする必要があった。

deno addのプレフィックス指定#

deno addでパッケージをインストールする際に、JSR と NPM どちらのレジストリを利用するかjsr:またはnpm:のプレフィックスの指定が必須になった。省略した場合、JSR にあればjsr:が提案され、NPM にしかなければnpm:が提案される。

Terminal window
$ deno add @hono/hono
error: @hono/hono is missing a prefix. Did you mean `deno add jsr:@hono/hono`?

また、npm:を指定し、package.jsonが存在する場合、deno.jsonではなくpackage.jsonに依存関係が追加されるようになった。

deno removeの追加#

依存関係を削除するdeno removeコマンドが追加された。 プレフィックスの指定は不要。package.jsonがある場合、package.jsonから削除される。

deno install --entrypointの追加#

エントリーポイントとして指定したファイルで使われているモジュール全てをインストール出来るdeno install --entrypointが追加された。

その他#

他にimport assertiondeno bundledeno vendorなど非推奨であった機能の廃止、--unstable--lock-writeなどの CLI フラグの非推奨化、既存の機能の改善や、Node.js との互換性強化などが行われている。

Deno の高速化については、公式の発表を見ると Bun より速いように見えるが、現状個人で検証している方のデータを参照および自身で軽く試してところ、Bun より高速ということはないように思う。

Tauri 2.0#

Tauri 2.0 がリリースされた。

https://v2.tauri.app/blog/tauri-20/

Tauri は、Electron の代替を目指す Rust 製のフレームワークである。

モバイルのサポート#

以前は Tauri Mobile に分かれていたが統合され、デスクトップアプリケーションに加えて、iOS と Android に対応したモバイルアプリケーションの提供が可能になった。モバイルデバイスおよびエミュレータでの HMR もサポートしている。

ESLint now officially supports linting of JSON and Markdown#

ESLint が JSON と Markdown を公式にサポートしたことを改めて紹介している。 @eslint/json@eslint/markdownの利用方法に加えて、カスタムルールの作成についても言及している。

https://eslint.org/blog/2024/10/eslint-json-markdown-support/

公式がサポートしているルールはあまり多くないが、@eslint/jsonは jsonc と json5 に対応している。 また@eslint/markdownでは Commonmark フォーマットと GFM(GitHub-Flavored Markdown)フォーマットを区別して対応をしている。

npm v10.9.0 devEngines#

npm v10.9.0 でdevEnginesフィールドが追加された。

https://github.com/npm/cli/releases/tag/v10.9.0

devEnginesを利用することで、開発時のランタイムとパッケージマネージャを制御することが出来る。

https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines

devEnginesは次のように利用する。

{
"devEngines": {
"runtime": {
"name": "node",
"onFail": "error"
},
"packageManager": {
"name": "npm",
"onFail": "error"
}
}
}

これは、packageManagerフィールドについての議論を元に提案された仕様を元に実装されている。

Frontend Weekly 2024-10-11
https://blog.ohirunewani.com/series/frontend-weekly/2024-10-11/
作者
hrdtbs
公開日
2024-10-11
ライセンス
CC BY-NC-SA 4.0