|
| 1 | +--- |
| 2 | +title: "2024-12-19のJS: Safari 18.2、State of Node.js Performance 2024、Astro Server Islands" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date: 2024-12-19T01:35:31.013Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- React |
| 9 | +- nodejs |
| 10 | +- sourcemap |
| 11 | +- ecma |
| 12 | +- spec |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #719 - Safri 18.2がリリースされました。 |
| 17 | + |
| 18 | +- [WebKit Features in Safari 18.2 | WebKit](https://webkit.org/blog/16301/webkit-features-in-safari-18-2/) |
| 19 | + |
| 20 | +次のような変更が含まれています。 |
| 21 | + |
| 22 | +- CSSでは、`text-box`(Leading Trim)/`@view-transition`/`background-clip`/`scrollbar-width`のサポート、ルビ表示の改善など |
| 23 | +- HTMLでは、`input type=week`のサポート、`blocking=render`属性と`<link rel=expect>`のサポートなど |
| 24 | +- JavaScriptでは、`Float16Array`/`Promise.try`/`RegExp.escape`のサポートなど |
| 25 | + |
| 26 | +---- |
| 27 | + |
| 28 | +[State of Node.js Performance 2024](https://nodesource.com/blog/State-of-Nodejs-Performance-2024)という記事では、Node.js 20と22のコアモジュールごとのパフォーマンスの比較が行われています。 |
| 29 | +Node.js側の改善によって、コアモジュールのパフォーマンスがどの程度改善されているかについて紹介されています。 |
| 30 | + |
| 31 | +---- |
| 32 | + |
| 33 | +[Next.js PPR と比較して理解する Astro Server Islands](https://zenn.dev/morinokami/articles/astro-server-islands-vs-nextjs-ppr)という記事では、Astro Server IslandsとNext.js PPRの仕組みや動作の違いなどについて紹介されています。 |
| 34 | + |
| 35 | + |
| 36 | +---- |
| 37 | + |
| 38 | +{% include inline-support.html %} |
| 39 | + |
| 40 | +---- |
| 41 | + |
| 42 | +<h1 class="site-genre">ヘッドライン</h1> |
| 43 | + |
| 44 | +---- |
| 45 | + |
| 46 | +## Node.js — Node v23.4.0 (Current) |
| 47 | +[nodejs.org/en/blog/release/v23.4.0](https://nodejs.org/en/blog/release/v23.4.0 "Node.js — Node v23.4.0 (Current)") |
| 48 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 49 | + |
| 50 | +Node.js v23.4.0リリース。 |
| 51 | +`assert.partialDeepStrictEqual`の追加、`--trace-env`フラグの追加、`net.connect`に`blockList`オプションの追加 |
| 52 | + |
| 53 | + |
| 54 | +---- |
| 55 | + |
| 56 | +## Source map format specification |
| 57 | +[tc39.es/ecma426/](https://tc39.es/ecma426/ "Source map format specification") |
| 58 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">sourcemap</span> <span class="jser-tag">ecma</span> <span class="jser-tag">spec</span></p> |
| 59 | + |
| 60 | +Source Mapの仕様がECMA426として公開された |
| 61 | + |
| 62 | + |
| 63 | +---- |
| 64 | + |
| 65 | +## WebKit Features in Safari 18.2 | WebKit |
| 66 | +[webkit.org/blog/16301/webkit-features-in-safari-18-2/](https://webkit.org/blog/16301/webkit-features-in-safari-18-2/ "WebKit Features in Safari 18.2 | WebKit") |
| 67 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">safari</span> <span class="jser-tag">ReleaseNote</span></p> |
| 68 | + |
| 69 | +Safari 18.2の変更点について。 |
| 70 | +CSSの`text-box`(Leading Trim)/`@view-transition`/`background-clip`/`scrollbar-width`のサポート。またルビ対応が改善されている。 |
| 71 | +HTMLの`input type=week`のサポート、`blocking=render`属性と`<link rel=expect>`のサポート。 |
| 72 | +Wasm GC/Wasm Tail Callsのサポート、PointerEventの対応の改善。 |
| 73 | +JavaScriptでは、`Float16Array`/`Promise.try`/`RegExp.escape`のサポートなど |
| 74 | + |
| 75 | + |
| 76 | +---- |
| 77 | + |
| 78 | +## Release v9.2.0 · reduxjs/react-redux |
| 79 | +[github.com/reduxjs/react-redux/releases/tag/v9.2.0](https://github.com/reduxjs/react-redux/releases/tag/v9.2.0 "Release v9.2.0 · reduxjs/react-redux") |
| 80 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">redux</span> <span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 81 | + |
| 82 | +React-Redux v9.2.0リリース。 |
| 83 | +React 19の対応など |
| 84 | + |
| 85 | +- [Release v2.5.0 · reduxjs/redux-toolkit](https://github.com/reduxjs/redux-toolkit/releases/tag/v2.5.0 "Release v2.5.0 · reduxjs/redux-toolkit") |
| 86 | + |
| 87 | +---- |
| 88 | + |
| 89 | +## Release v11.0.0 · npm/cli |
| 90 | +[github.com/npm/cli/releases/tag/v11.0.0](https://github.com/npm/cli/releases/tag/v11.0.0 "Release v11.0.0 · npm/cli") |
| 91 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 92 | + |
| 93 | +npm v11.0.0リリース。 |
| 94 | + |
| 95 | + |
| 96 | +---- |
| 97 | + |
| 98 | +## Bun v1.1.40 | Bun Blog |
| 99 | +[bun.sh/blog/bun-v1.1.40](https://bun.sh/blog/bun-v1.1.40 "Bun v1.1.40 | Bun Blog") |
| 100 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 101 | + |
| 102 | +Bun v1.1.40リリース。 |
| 103 | +テキストベースのロックファイルを扱う` install.saveTextLockfile`の設定を追加など |
| 104 | + |
| 105 | + |
| 106 | +---- |
| 107 | + |
| 108 | +## Release v7.1.0 · nodejs/undici |
| 109 | +[github.com/nodejs/undici/releases/tag/v7.1.0](https://github.com/nodejs/undici/releases/tag/v7.1.0 "Release v7.1.0 · nodejs/undici") |
| 110 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">HTTP</span> <span class="jser-tag">Fetch</span> <span class="jser-tag">library</span></p> |
| 111 | + |
| 112 | +undici v7.1.0リリース。 |
| 113 | +http/2サポートがStableとなった |
| 114 | + |
| 115 | + |
| 116 | +---- |
| 117 | +<h1 class="site-genre">アーティクル</h1> |
| 118 | + |
| 119 | +---- |
| 120 | + |
| 121 | +## State of Node.js Performance 2024 |
| 122 | +[nodesource.com/blog/State-of-Nodejs-Performance-2024](https://nodesource.com/blog/State-of-Nodejs-Performance-2024 "State of Node.js Performance 2024") |
| 123 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">performance</span> <span class="jser-tag">article</span></p> |
| 124 | + |
| 125 | +Node.js 20と22のコアモジュールごとのパフォーマンスの比較。 |
| 126 | +どれぐらいパフォーマンスが改善されているかについて |
| 127 | + |
| 128 | + |
| 129 | +---- |
| 130 | + |
| 131 | +## Next.js PPR と比較して理解する Astro Server Islands |
| 132 | +[zenn.dev/morinokami/articles/astro-server-islands-vs-nextjs-ppr](https://zenn.dev/morinokami/articles/astro-server-islands-vs-nextjs-ppr "Next.js PPR と比較して理解する Astro Server Islands") |
| 133 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">astro</span> <span class="jser-tag">article</span></p> |
| 134 | + |
| 135 | +astroのServer IslandsとNext.jsのPPR( Partial Prerendering)について |
| 136 | + |
| 137 | + |
| 138 | +---- |
| 139 | +<h1 class="site-genre">スライド、動画関係</h1> |
| 140 | + |
| 141 | +---- |
| 142 | + |
| 143 | +## Recoilを剥がしている話 - Speaker Deck |
| 144 | +[speakerdeck.com/kirik/recoilwobo-gasiteiruhua](https://speakerdeck.com/kirik/recoilwobo-gasiteiruhua "Recoilを剥がしている話 - Speaker Deck") |
| 145 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">slide</span></p> |
| 146 | + |
| 147 | +Recoilがメンテナンスされていないため、RecoilからReact Contextなどへの移行していく話 |
| 148 | + |
| 149 | + |
| 150 | +---- |
| 151 | +<h1 class="site-genre">サイト、サービス、ドキュメント</h1> |
| 152 | + |
| 153 | +---- |
| 154 | + |
| 155 | +## lingui/js-lingui: 🌍 📖 A readable, automated, and optimized (3 kb) internationalization for JavaScript |
| 156 | +[github.com/lingui/js-lingui?tab=readme-ov-file](https://github.com/lingui/js-lingui?tab=readme-ov-file "lingui/js-lingui: 🌍 📖 A readable, automated, and optimized (3 kb) internationalization for JavaScript") |
| 157 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">React</span> <span class="jser-tag">i18n</span> <span class="jser-tag">library</span></p> |
| 158 | + |
| 159 | +ICU MessageFormatを使ったi18nライブラリとツール。 |
| 160 | +コードをスキャンしてメッセージを抽出するextract、実際に利用しているメッセージだけを含める仕組み、ロケールに基づいて動的にメッセージカタログを読み込む仕組みなどを持つ。 |
| 161 | +翻訳を行うJavaScriptの関数やReactのコンポーネントなどを提供している |
| 162 | + |
| 163 | + |
| 164 | +---- |
| 165 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 166 | + |
| 167 | +---- |
| 168 | + |
| 169 | +## nissy-dev/tenbin: Tenbin provides tools to minimize the differences in test execution times across shards. |
| 170 | +[github.com/nissy-dev/tenbin](https://github.com/nissy-dev/tenbin "nissy-dev/tenbin: Tenbin provides tools to minimize the differences in test execution times across shards.") |
| 171 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">test</span> <span class="jser-tag">library</span></p> |
| 172 | + |
| 173 | +過去のテストの実行時間を利用してテストのsharding を行うツール。 |
| 174 | +Jest/Vitest/Playwrightをサポートしている |
| 175 | + |
| 176 | +- [テストの sharding を効率化する Tenbin というツールを作った](https://zenn.dev/cybozu_frontend/articles/create-tenbin "テストの sharding を効率化する Tenbin というツールを作った") |
| 177 | + |
| 178 | +---- |
| 179 | + |
| 180 | +## mui/base-ui: Base UI is an open-source library of accessible, unstyled UI components for React. |
| 181 | +[github.com/mui/base-ui](https://github.com/mui/base-ui "mui/base-ui: Base UI is an open-source library of accessible, unstyled UI components for React.") |
| 182 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">UI</span> <span class="jser-tag">accessibility</span></p> |
| 183 | + |
| 184 | +MUIのHeadless UIコンポーネントライブラリ。 |
| 185 | + |
| 186 | + |
| 187 | +---- |
| 188 | + |
| 189 | +## Termo - An Easy to use terminal for your browser |
| 190 | +[termo.rajnandan.com/](https://termo.rajnandan.com/ "Termo - An Easy to use terminal for your browser") |
| 191 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">GUI</span> <span class="jser-tag">library</span></p> |
| 192 | + |
| 193 | +ターミナルライクなUIを作るライブラリ |
| 194 | + |
| 195 | + |
| 196 | +---- |
0 commit comments