|
| 1 | +--- |
| 2 | +title: "2024-12-28のJS: pnpm 10.0 RC.1、State of JavaScript 2024、Design Token-Based UI Architecture" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date: 2024-12-28T07:53:27.289Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- React |
| 9 | +- Remix |
| 10 | +- Design |
| 11 | +- UI |
| 12 | +- architecture |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #720 - pnpm 10.0 RC 1がリリースされました。 |
| 17 | + |
| 18 | +- [Release pnpm 10.0 RC 1 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v10.0.0-rc.1) |
| 19 | + |
| 20 | +インストールするパッケージのlifecycle scriptをデフォルトで実行しないように変更が含まれています。 |
| 21 | +パッケージの`postinstall`などのlifecycle scriptの実行を許可するには`pnpm.onlyBuiltDependencies`の設定にパッケージ名を追加する必要があります。 |
| 22 | + |
| 23 | +- [feat!: use an allow list of built dependencies by default by zkochan · Pull Request #8897 · pnpm/pnpm](https://github.com/pnpm/pnpm/pull/8897) |
| 24 | + |
| 25 | +これは、rspack v1.1.7でパッケージがハイジャックされ[マルウェアを実行するlifecycle script](https://socket.dev/npm/package/@rspack/core/files/1.1.7/package.json#L78)が含まれていた問題に関連した変更になっています。 |
| 26 | + |
| 27 | +- [Release v1.1.8 · web-infra-dev/rspack](https://github.com/web-infra-dev/rspack/releases/tag/v1.1.8) |
| 28 | + |
| 29 | +そのほかには、`pnpm link`の挙動の変更、`packageManager`を参照してpnpmのバージョンを確認するように、ハッシュアルゴリズムをSHA256に変更、storeバージョンの更新が行われています。 |
| 30 | +また、`verifyDepsBeforeRun`オプションが追加され、lockと`node_modules/`の状態を比較して自動インストールなどの挙動を選択できるようになるといった変更も含まれています。 |
| 31 | + |
| 32 | +---- |
| 33 | + |
| 34 | +JavaScriptに関する開発者アンケートである[State of JavaScript 2024](https://2024.stateofjs.com/en-US)が公開されました。 |
| 35 | +JavaScriptの言語機能/ライブラリ/テスト/monorepo/JSとTSの比率/AIの利用率学習リソースなどについてのアンケート結果がまとめられています。 |
| 36 | + |
| 37 | +---- |
| 38 | + |
| 39 | +[Design Token-Based UI Architecture](https://martinfowler.com/articles/design-token-based-ui-architecture.html)という記事ではDesign TokenベースのUIアーキテクチャについて書かれています。 |
| 40 | + |
| 41 | +Design Tokenを2つ or 3つのレイヤーへの分割する理由、Tokenのスコープ、Design Tokenのメリット/デメリットについて書かれています。 |
| 42 | + |
| 43 | +---- |
| 44 | + |
| 45 | +{% include inline-support.html %} |
| 46 | + |
| 47 | +---- |
| 48 | + |
| 49 | +<h1 class="site-genre">ヘッドライン</h1> |
| 50 | + |
| 51 | +---- |
| 52 | + |
| 53 | +## react-router/CHANGELOG.md at main · remix-run/react-router |
| 54 | +[github.com/remix-run/react-router/blob/main/CHANGELOG.md#v710](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v710 "react-router/CHANGELOG.md at main · remix-run/react-router") |
| 55 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">Remix</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 56 | + |
| 57 | +React Router 7.1.0リリース。 |
| 58 | +Vite 6をサポート |
| 59 | + |
| 60 | + |
| 61 | +---- |
| 62 | + |
| 63 | +## Release v2.3.0 · vercel/swr |
| 64 | +[github.com/vercel/swr/releases/tag/v2.3.0](https://github.com/vercel/swr/releases/tag/v2.3.0 "Release v2.3.0 · vercel/swr") |
| 65 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 66 | + |
| 67 | +SWR v2.3.0リリース。 |
| 68 | +fallbackとしてPromiseデータを指定できるように、React 19のサポートなど |
| 69 | + |
| 70 | + |
| 71 | +---- |
| 72 | + |
| 73 | +## Release 8.3.0 – Pipes of Steel · google/zx |
| 74 | +[github.com/google/zx/releases/tag/8.3.0](https://github.com/google/zx/releases/tag/8.3.0 "Release 8.3.0 – Pipes of Steel · google/zx") |
| 75 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ShellScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 76 | + |
| 77 | +zx 8.3.0リリース。 |
| 78 | +Async Iteratorの対応、`pipe()`の改善、`--env`フラグの追加など |
| 79 | + |
| 80 | + |
| 81 | +---- |
| 82 | + |
| 83 | +## Nuxt 3.15 · Nuxt Blog |
| 84 | +[nuxt.com/blog/v3-15](https://nuxt.com/blog/v3-15 "Nuxt 3.15 · Nuxt Blog") |
| 85 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Nuxt</span> <span class="jser-tag">ReleaseNote</span></p> |
| 86 | + |
| 87 | +Nuxt v3.15リリース。 |
| 88 | +Vite 6のサポート、`callOnce()`の追加、`definePageMeta`の改善など |
| 89 | + |
| 90 | + |
| 91 | +---- |
| 92 | + |
| 93 | +## Release pnpm 10.0 RC 1 · pnpm/pnpm |
| 94 | +[github.com/pnpm/pnpm/releases/tag/v10.0.0-rc.1](https://github.com/pnpm/pnpm/releases/tag/v10.0.0-rc.1 "Release pnpm 10.0 RC 1 · pnpm/pnpm") |
| 95 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 96 | + |
| 97 | +pnpm v10.0.0-rc.1リリース。 |
| 98 | +インストールするパッケージのlifecycle scriptをデフォルトで実行しないように変更。 |
| 99 | + `pnpm link`の挙動の変更、`packageManager`を参照してpnpmのバージョンを確認するように、ハッシュアルゴリズムをSHA256に変更、storeバージョンの更新。 |
| 100 | + `verifyDepsBeforeRun`オプションが追加され、lockと`node_modules/`の状態を比較して自動インストールなどの挙動を選択できるようになるなど。 |
| 101 | + |
| 102 | + |
| 103 | +---- |
| 104 | + |
| 105 | +## Release v1.1.8 · web-infra-dev/rspack |
| 106 | +[github.com/web-infra-dev/rspack/releases/tag/v1.1.8](https://github.com/web-infra-dev/rspack/releases/tag/v1.1.8 "Release v1.1.8 · web-infra-dev/rspack") |
| 107 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">security</span> <span class="jser-tag">ReleaseNote</span></p> |
| 108 | + |
| 109 | +rspack v1.1.8リリース。 |
| 110 | +`@rspack/core`と`@rspack/cli` v1.1.7のパッケージがハイジャックされマルウェアを含むバージョンが公開された問題への対応としてのリリース。 |
| 111 | + |
| 112 | + |
| 113 | +---- |
| 114 | +<h1 class="site-genre">アーティクル</h1> |
| 115 | + |
| 116 | +---- |
| 117 | + |
| 118 | +## Design Token-Based UI Architecture |
| 119 | +[martinfowler.com/articles/design-token-based-ui-architecture.html](https://martinfowler.com/articles/design-token-based-ui-architecture.html "Design Token-Based UI Architecture") |
| 120 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Design</span> <span class="jser-tag">UI</span> <span class="jser-tag">architecture</span> <span class="jser-tag">article</span></p> |
| 121 | + |
| 122 | +Design TokenとUIの開発について。 |
| 123 | +Design Tokenを2つ or 3つのレイヤーへの分割する理由、Tokenのスコープ、Design Tokenのメリット/デメリットについて |
| 124 | + |
| 125 | + |
| 126 | +---- |
| 127 | + |
| 128 | +## State of JavaScript 2024 |
| 129 | +[2024.stateofjs.com/en-US](https://2024.stateofjs.com/en-US "State of JavaScript 2024") |
| 130 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Survey</span></p> |
| 131 | + |
| 132 | +State of JavaScript 2024のアンケート結果が公開された。 |
| 133 | +JavaScriptの言語機能/ライブラリ/テスト/monorepoについて。 |
| 134 | +またJSとTSの比率、AIの利用率、学習リソースなどについて |
| 135 | + |
| 136 | + |
| 137 | +---- |
| 138 | + |
| 139 | +## Service Worker がページをコントロールし始めるタイミングを skipWaiting と clients.claim から理解する - カミナシ エンジニアブログ |
| 140 | +[kaminashi-developer.hatenablog.jp/entry/2024/12/20/080000](https://kaminashi-developer.hatenablog.jp/entry/2024/12/20/080000 "Service Worker がページをコントロールし始めるタイミングを skipWaiting と clients.claim から理解する - カミナシ エンジニアブログ") |
| 141 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ServiceWorker</span> <span class="jser-tag">article</span></p> |
| 142 | + |
| 143 | +Service Workerの`skipWaiting`と`clients.claim`の挙動について。 |
| 144 | + |
| 145 | + |
| 146 | +---- |
| 147 | + |
| 148 | +## React Ariaの実装読むぞ - Qiita Advent Calendar 2024 - Qiita |
| 149 | +[qiita.com/advent-calendar/2024/react-aria](https://qiita.com/advent-calendar/2024/react-aria "React Ariaの実装読むぞ - Qiita Advent Calendar 2024 - Qiita") |
| 150 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">accessibility</span> <span class="jser-tag">article</span></p> |
| 151 | + |
| 152 | +React Ariaのアクセシビリティ対応の実装についての連載記事 |
| 153 | + |
| 154 | + |
| 155 | +---- |
| 156 | + |
| 157 | +## Why I’m excited about text-box-trim as a designer - Piccalilli |
| 158 | +[piccalil.li/blog/why-im-excited-about-text-box-trim-as-a-designer/](https://piccalil.li/blog/why-im-excited-about-text-box-trim-as-a-designer/ "Why I’m excited about text-box-trim as a designer - Piccalilli") |
| 159 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">css </span> <span class="jser-tag">article</span> <span class="jser-tag">fonts</span></p> |
| 160 | + |
| 161 | +CSSのtext-box-trim/text-edge/text-boxでのタイポグラフィについて |
| 162 | + |
| 163 | + |
| 164 | +---- |
| 165 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 166 | + |
| 167 | +---- |
| 168 | + |
| 169 | +## Zero Docs |
| 170 | +[zero.rocicorp.dev/](https://zero.rocicorp.dev/ "Zero Docs") |
| 171 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">React</span> <span class="jser-tag">WebSocket</span> <span class="jser-tag">library</span> <span class="jser-tag">database</span></p> |
| 172 | + |
| 173 | +クライアントとバックエンドのデータベースの状態を同期するクエリエンジン。 |
| 174 | +クライアントからORMでクエリを書き、その結果がバックエンドのデータベースに反映される。またクエリの結果はクライアントのローカルでもキャッシュして再利用することで、クライアントには高速に反映される。 |
| 175 | +権限はZero Schemaというスキーマに定義することでクライアントから実行できるクエリを制御している。 |
| 176 | + |
| 177 | + |
| 178 | +---- |
0 commit comments