Fork me on GitHub

2023-09-22のJS: Remix v2、Safari 17、TypeScriptドキュメンタリー

Edit on GitHub 編集履歴を見る

JSer.info #661 - Remix v2がリリースされました。

React 17のサポート終了、Node.js 14/16のサポート終了されています。

オプションやデフォルトの動作の変更が含まれますが、
V1からの移行はv2_*フラグを使うことで機能を一つずつ有効化して移行できるようになっています。

ルーティングのディレクトリ構造のデフォルトがFlat Routesに変更されています。

2.0.0ではv2_*フラグの削除、remix.config.jsの設定やコマンドの変更などが含まれています。


Safari 17.0がリリースされました。

かなり多くの変更が含まれています。

  • HTMLでは、<search>要素の対応、popover属性の対応
  • CSSでは、font-size-adjusttext-transform@counter-styleimage-set()の対応
  • JavaScriptでは、Storage API、正規表現のvフラグ(ES2024)、Stage 3のSet Operationsの対応
  • 画像では、JPEG XL/HEIC/AV1コーデックのサポート

また、実験的なフラグの管理方法や開発者ツールの変更なども含まれています。


TypeScript Origins: The Documentary - YouTubeというTypeScriptという言語でもありツールがどのように作られたかドキュメンタリー動画が公開されています。

オープンソース、他のツールやライブラリとの親和性に対するアプローチなど、TypeScriptがどのように広がってきてかについて語られています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Bun v1.0.2 | Bun Blog

bun.sh/blog/bun-v1.0.2

Bun ReleaseNote

Bun v1.0.2リリース。
bunx <pkg>@latestで最新のパッケージが取得できないバグを修正、bun --watchのパフォーマンス改善。
DateのパースにV8の実装を使ように、URL.canParse/URLSearchParams.prototype.sizeの実装など。


Release v2.0.0 · remix-run/remix

github.com/remix-run/remix/releases/tag/remix%402.0.0

Remix ReleaseNote

Remix 2.0.0リリース。
React 17のサポート終了、Node.js 14/16のサポート終了。
V1からの移行はv2_*フラグを使うことで機能を一つずつ有効化して移行できる。
2.0.0ではv2_*フラグの削除、remix.config.jsの設定やコマンドの変更などが含まれる。


Node v18.18.0 (LTS) | Node.js

nodejs.org/ja/blog/release/v18.18.0

nodejs ReleaseNote

Node.js v18.18.0リリース。
node --importフラグの追加、node:fsnode:streamでExplicit Resource Managementのサポートなど


Node v20.7.0 (Current) | Node.js

nodejs.org/ja/blog/release/v20.7.0

nodejs ReleaseNote

Node.js v20.7.0リリース。
複数の--env-file指定をサポート、npm 10.xへのアップデート、process.sourceMapsEnabled APIの追加など


Next.js 13.5 | Next.js

nextjs.org/blog/next-13-5

Next.js ReleaseNote

Next.js 13.5リリース。
パフォーマンスの改善、re-exportsするパッケージを最適化するoptimizePackageImportsオプションの追加。
実験的な機能として、next/imageunstable_getImgPropsを追加、next dev --experimental-httpsの追加。
また、create-next-appがBunをサポートなど


eslint-stylistic/eslint-stylistic: Monorepo for ESLint Stylistic plugins and configs

github.com/eslint-stylistic/eslint-stylistic

ESLint plugin

ESLintのスタイル関連のルールを管理するプロジェクト


Ladle v3 | Ladle

ladle.dev/blog/ladle-v3

JavaScript testing Tools ReleaseNote

Storybookの代替ツールであるLadle v3リリース。
SWCをデフォルトのTranspilerに変更、Node.js 16のサポート終了、CSS in JSライブラリを追加の設定なしで動作するように


WebKit Features in Safari 17.0 | WebKit

webkit.org/blog/14445/webkit-features-in-safari-17-0/

safari ReleaseNote

Safari 17リリース。
HTMLでは、<search>要素の対応、popover属性の対応。
CSSでは、font-size-adjusttext-transform@counter-styleimage-set()の対応。
JavaScriptでは、Storage API、正規表現のvフラグ(ES2024)、Stage 3のSet Operationsの対応。
画像では、JPEG XL/HEIC/AV1コーデックのサポート。
実験的なフラグの管理方法や開発者ツールの変更なども含まれる


Deno 1.37: Modern JavaScript in Jupyter Notebooks

deno.com/blog/v1.37

denoe ReleaseNote

Deno v1.37リリース。
deno jupyter --unstableの追加、deno test--reporter=tapレポーターを追加、Node.jsとの互換性改善。
ロックファイルの形式をversion 3にアップデート、std/urlの追加、std/ulidの追加など


アーティクル


How to Find the Exact Line of an Infinite Loop Bug in the code | by Abdu Tawfik | Medium

abduvik.medium.com/how-to-find-infinite-loops-in-javascript-using-devtools-ea5fc84aec73

Chrome debug article

Chromeで無限ループが起きてる時にパフォーマンスのプロファイルを取る方法について。
無限ループが起きるとProfile自体も完了しないため、記録を開始してタブのプロセスを強制的に停止すると取得できるという方法について。
また同期的な無限ループと非同期的な無限ループについて


From WebGL to WebGPU - Chrome for Developers

developer.chrome.com/en/blog/from-webgl-to-webgpu/

WebGL WebGPU article

WebGLとWebGPUの違いについて


Introducing runes

svelte.dev/blog/runes

Svelte article

Svelte 5はrunesという$state/$derived/$effectといったマクロを使いreactiveなステート管理を実現するという話。
$:のラベルでのReactiveではアプリケーションが複雑になるとどれがReactiveなのかがわからなくなる問題があったため。


スライド、動画関係


TypeScript Origins: The Documentary - YouTube

www.youtube.com/watch?v=U6s2pdxebSo

TypeScript video

TypeScriptのドキュメンタリー動画


ソフトウェア、ツール、ライブラリ関係


nuejs/nuejs: Build user interfaces with 10x less code. Alternative to React, Vue, and Svelte

github.com/nuejs/nuejs/tree/master

JavaScript UI Tools library

少ないコード量で書けることが目的のVue/Riot的なUIフレームワーク。


この記事へ修正リクエストをする
JSer.info Slackに参加する