|
| 1 | +--- |
| 2 | +title: "2026-05-24のJS: pnpm 11.1〜11.3、npm CLI v11.15.0、Deno 2.8" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date: 2026-05-25T01:03:40.989Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- pnpm |
| 9 | +- npm |
| 10 | +- nodejs |
| 11 | +- security |
| 12 | +- CLI |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #772 - pnpm 11.1から11.3にかけて、サプライチェーンセキュリティに関する機能が多数追加されています。 |
| 17 | + |
| 18 | +- [Release pnpm 11.1 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.0) |
| 19 | +- [Release pnpm 11.1.3 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.3) |
| 20 | +- [pnpm 11.3 | pnpm](https://pnpm.io/blog/releases/11.3) |
| 21 | + |
| 22 | +pnpm 11.1ではレジストリ署名を検証する`pnpm audit signatures`コマンドが追加され、11.1.3ではインストール時にlockfileのエントリを`minimumReleaseAge`で再検証する仕組みと`minimumReleaseAgeStrict`モードが導入されています。11.3ではStaged Publishing用の`pnpm stage`コマンドと、信頼済みのlockfile検証をスキップする`trustLockfile`設定が追加されています。 |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +npm CLI v11.15.0がリリースされました。 |
| 27 | + |
| 28 | +- [Release v11.15.0 · npm/cli](https://github.com/npm/cli/releases/tag/v11.15.0) |
| 29 | + |
| 30 | +Staged Publishingのための`npm stage`コマンドが追加されました。Staged Publishingは、パッケージの公開前に承認ステップを追加する仕組みで、ステージングへ送信した後にメンテナーが2FAで承認してからレジストリに公開されます。また、インストール時の挙動を制御する`allow-git`/`allow-file`/`allow-directory`/`allow-remote`の設定が追加されています。 |
| 31 | + |
| 32 | +- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing) |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +Deno 2.8がリリースされました。 |
| 37 | + |
| 38 | +- [Deno 2.8 | Deno](https://deno.com/blog/v2.8) |
| 39 | + |
| 40 | +`deno audit fix`、`deno bump-version`、`deno ci`、`deno pack`、`deno transpile`、`deno why`などの新しいサブコマンドが追加されています。Node.js互換性のテストスイート合格率が42%から76.4%に改善し、Stage 3の`import defer`を実装しています。また、CLIで`npm:`プレフィックスが不要になり、`catalog:`プロトコルでモノレポの依存バージョンを一元管理できるようになっています。 |
| 41 | + |
| 42 | +---- |
| 43 | +{% include inline-support.html %} |
| 44 | + |
| 45 | +---- |
| 46 | +<h1 class="site-genre">ヘッドライン</h1> |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +## Release v1.60.0 · microsoft/playwright |
| 51 | +[github.com/microsoft/playwright/releases/tag/v1.60.0](https://github.com/microsoft/playwright/releases/tag/v1.60.0 "Release v1.60.0 · microsoft/playwright") |
| 52 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">playwright</span> <span class="jser-tag">ReleaseNote</span></p> |
| 53 | + |
| 54 | +playwright v1.60.0リリース。 |
| 55 | +破壊的な変更として、`Locator.ariaRef()`、bindingsの`handle`オプション、`videosPath`/`videoSize`などのdeprecatedなAPIを削除。 |
| 56 | +`tracing.startHar()`/`tracing.stopHar()`でHAR記録をサポート、外部からのドラッグ&ドロップをシミュレートする`locator.drop()`の追加。 |
| 57 | +`expect(page).toMatchAriaSnapshot()`をPageに対して利用できるように、`boxes`オプションで境界ボックス情報を含められるように。 |
| 58 | +テストを中断する`test.abort()`、`browser.on('context')`イベントとBrowserContextのライフサイクルイベントの追加など |
| 59 | + |
| 60 | + |
| 61 | +---- |
| 62 | + |
| 63 | +## Release pnpm 11.1 · pnpm/pnpm |
| 64 | +[github.com/pnpm/pnpm/releases/tag/v11.1.0](https://github.com/pnpm/pnpm/releases/tag/v11.1.0 "Release pnpm 11.1 · pnpm/pnpm") |
| 65 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 66 | + |
| 67 | +pnpm v11.1.0リリース。 |
| 68 | +レジストリ署名を検証する`pnpm audit signatures`コマンド、`namedRegistries`によるレジストリのプレフィックス指定(`gh:@acme/private`など)のサポート。 |
| 69 | +`pnpm bugs`/`pnpm owner`コマンドの追加。 |
| 70 | +SBOMの仕様バージョンを指定する`--sbom-spec-version`、ランタイムのインストールをスキップする`--no-runtime`フラグの追加など。 |
| 71 | + |
| 72 | + |
| 73 | +---- |
| 74 | + |
| 75 | +## Release vite-plus v0.1.21 — Create, Migrate & Local CLI Power-Up · voidzero-dev/vite-plus |
| 76 | +[github.com/voidzero-dev/vite-plus/releases/tag/v0.1.21](https://github.com/voidzero-dev/vite-plus/releases/tag/v0.1.21 "Release vite-plus v0.1.21 — Create, Migrate & Local CLI Power-Up · voidzero-dev/vite-plus") |
| 77 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">CLI</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p> |
| 78 | + |
| 79 | +vite-plus v0.1.21リリース。 |
| 80 | +`vp pm`コマンドがローカルCLIで動作するようになり、`vp migrate`はnamed catalogsの書き換えや`tsdown/client`のインポートと型設定の移行に対応。 |
| 81 | +`vp create`は`@org`形式のスコープ付きテンプレートをサポート。 |
| 82 | +Nushellへの対応、`vp pm plugin`のyarnサポート、`--provenance`フラグ、Windowsの`.cmd`シム経由のPowerShell実行などを追加。 |
| 83 | +pnpm v11+での`--ignore-scripts`自動付与、`vite-plus/pack/client`の追加など |
| 84 | + |
| 85 | + |
| 86 | +---- |
| 87 | + |
| 88 | +## Bun v1.3.14 | Bun Blog |
| 89 | +[bun.com/blog/bun-v1.3.14](https://bun.com/blog/bun-v1.3.14 "Bun v1.3.14 | Bun Blog") |
| 90 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 91 | + |
| 92 | +Bun v1.3.14リリース。 |
| 93 | +画像のリサイズ/回転/フォーマット変換に対応した画像処理API `Bun.Image`を追加。 |
| 94 | +`Bun.serve()`がHTTP/3 over QUICに対応、`fetch()`が実験的にHTTP/2とHTTP/3プロトコルをサポート。 |
| 95 | +isolated linkerのglobalStoreオプションを追加、親プロセス終了時にBunプロセスツリーを終了する`--no-orphans`フラグの追加。 |
| 96 | +Node.js v24互換の`process.execve()`、Windowsでの`Bun.Terminal`(ConPTY)、FreeBSD/Androidの公式ビルド提供など |
| 97 | + |
| 98 | + |
| 99 | +---- |
| 100 | + |
| 101 | +## Release pnpm 11.1.3 · pnpm/pnpm |
| 102 | +[github.com/pnpm/pnpm/releases/tag/v11.1.3](https://github.com/pnpm/pnpm/releases/tag/v11.1.3 "Release pnpm 11.1.3 · pnpm/pnpm") |
| 103 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 104 | + |
| 105 | +pnpm v11.1.3リリース。 |
| 106 | +インストール時に`pnpm-lock.yaml`のエントリを`minimumReleaseAge`と`trustPolicy`で再検証するように変更と`minimumReleaseAgeStrict`モードの追加。 |
| 107 | +`pnpm self-update`が`minimumReleaseAge`を尊重するように変更、`NODE_AUTH_TOKEN`未設定時のOIDC認証失敗などを修正。 |
| 108 | + |
| 109 | + |
| 110 | +---- |
| 111 | + |
| 112 | +## Node.js — Node.js 26.2.0 (Current) |
| 113 | +[nodejs.org/en/blog/release/v26.2.0](https://nodejs.org/en/blog/release/v26.2.0 "Node.js — Node.js 26.2.0 (Current)") |
| 114 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 115 | + |
| 116 | +Node.js 26.2.0リリース。 |
| 117 | +`fs.Stats`と`BigIntStats`が`Temporal.Instant`をサポート、HTTPの`writeInformation`メソッドで任意の1xxステータスコードを送信できるよう。 |
| 118 | +`stream.compose`がStableへ変更、Web Cryptography APIにML-DSA/ML-KEM/ChaCha20-Poly1305などのアルゴリズムを追加など |
| 119 | + |
| 120 | + |
| 121 | +---- |
| 122 | + |
| 123 | +## Release v11.15.0 · npm/cli |
| 124 | +[github.com/npm/cli/releases/tag/v11.15.0](https://github.com/npm/cli/releases/tag/v11.15.0 "Release v11.15.0 · npm/cli") |
| 125 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">CLI</span> <span class="jser-tag">ReleaseNote</span></p> |
| 126 | + |
| 127 | +npm CLI v11.15.0リリース。 |
| 128 | +Staged Publishingのための`npm stage`コマンドを追加、`trust`コマンドにpermissionsサポートを追加。 |
| 129 | +インストール時の挙動を制御する`allow-git`/`allow-file`/`allow-directory`/`allow-remote`の設定を追加。 |
| 130 | + |
| 131 | +- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing "Staged publishing for npm packages") |
| 132 | + |
| 133 | +---- |
| 134 | + |
| 135 | +## Release @apollo/client@4.2.0 · apollographql/apollo-client |
| 136 | +[github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.2.0](https://github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.2.0 "Release @apollo/client@4.2.0 · apollographql/apollo-client") |
| 137 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">GraphQL</span></p> |
| 138 | + |
| 139 | +Apollo Client 4.2.0リリース。 |
| 140 | +hookやメソッドのシグネチャに、`defaultOptions`を反映する"modern"スタイルを追加。 |
| 141 | +`RefetchEventManager`クラスを追加し、windowのfocusやネットワーク再接続などのイベントに応じたクエリの自動再取得をサポート。 |
| 142 | +`client.query`/`client.mutate`/`useMutation`/`preloadQuery`の戻り値の型に`defaultOptions`を反映するように改善。 |
| 143 | + |
| 144 | + |
| 145 | +---- |
| 146 | + |
| 147 | +## pnpm 11.3 | pnpm |
| 148 | +[pnpm.io/blog/releases/11.3](https://pnpm.io/blog/releases/11.3 "pnpm 11.3 | pnpm") |
| 149 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 150 | + |
| 151 | +pnpm 11.3リリース。 |
| 152 | +Staged Publishing用の`pnpm stage`コマンド、信頼済みのlockfileの検証をスキップする`trustLockfile`設定の追加。 |
| 153 | +`pnpm pkg`/`pnpm repo`/`pnpm set-script`をネイティブ実装に置き換え、`pnpm publish`に`--skip-manifest-obfuscation`フラグを追加など |
| 154 | + |
| 155 | + |
| 156 | +---- |
| 157 | + |
| 158 | +## Deno 2.8 | Deno |
| 159 | +[deno.com/blog/v2.8](https://deno.com/blog/v2.8 "Deno 2.8 | Deno") |
| 160 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p> |
| 161 | + |
| 162 | +Deno 2.8リリース。 |
| 163 | +`deno audit fix`/`deno bump-version`/`deno ci`/`deno pack`/`deno transpile`/`deno why`などの新しいサブコマンドを追加。 |
| 164 | +Node.js互換性のテストスイート合格率が42%から76.4%に改善、Stage 3の`import defer`を実装。 |
| 165 | +CLIで`npm:`プレフィックスが不要に、`catalog:`のサポート、`--os`/`--arch`フラグでクロスプラットフォームインストールに対応。 |
| 166 | +`OffscreenCanvas`や`DOMPoint`などのWeb APIを追加、Chrome DevToolsでのネットワークデバッグやCPUプロファイリングをサポート。 |
| 167 | + |
| 168 | + |
| 169 | +---- |
| 170 | +<h1 class="site-genre">アーティクル</h1> |
| 171 | + |
| 172 | +---- |
| 173 | + |
| 174 | +## Postmortem: TanStack npm supply-chain compromise | TanStack Blog |
| 175 | +[tanstack.com/blog/npm-supply-chain-compromise-postmortem](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem "Postmortem: TanStack npm supply-chain compromise | TanStack Blog") |
| 176 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TanStack</span> <span class="jser-tag">npm</span> <span class="jser-tag">security</span> <span class="jser-tag">Actions</span> <span class="jser-tag">article</span></p> |
| 177 | + |
| 178 | +2026年5月11日に発生したTanStackのnpmパッケージに対するサプライチェーン攻撃のポストモーテム。 |
| 179 | +`pull_request_target`ワークフローの設定不備、GitHub Actionsのキャッシュポイズニングを組み合わせた攻撃手法について。 |
| 180 | +フォークからのPRで実行されたコードがpnpmのキャッシュを汚染し、後のリリースワークフローで悪意のあるバイナリが復元された。 |
| 181 | +`/proc/`経由でランナープロセスのメモリからOIDCトークンを抽出してnpm publishに利用された。 |
| 182 | +対策として`pull_request_target`を使うワークフローの監査、サードパーティActionのコミットハッシュ固定などを挙げている。 |
| 183 | + |
| 184 | + |
| 185 | +---- |
| 186 | + |
| 187 | +## 9 Times the Web Platform Was Influenced by Libraries | Jad Joubran |
| 188 | +[jadjoubran.io/blog/web-platform-influenced-by-libraries](https://jadjoubran.io/blog/web-platform-influenced-by-libraries "9 Times the Web Platform Was Influenced by Libraries | Jad Joubran") |
| 189 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebPlatformAPI</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">history</span> <span class="jser-tag">article</span></p> |
| 190 | + |
| 191 | +WebプラットフォームのネイティブAPIがライブラリから受けた影響を9つの事例で紹介する記事。 |
| 192 | +jQuery/SizzleのCSSセレクタが`querySelector`に、Bootstrapの`data-toggle`が`popovertarget`/`command`属性に。 |
| 193 | +jQueryの`.addClass()`が`classList`へ、Lodash/Underscoreのメソッドが`String`/`Array`のメソッドに。 |
| 194 | +さらに`structuredClone`、Promises/A+の標準化、ES Modulesの設計。 |
| 195 | +Moment.jsの課題から`Temporal API`、jQueryの`.closest()`から`Element.closest()`の流れなどについて。 |
| 196 | + |
| 197 | + |
| 198 | +---- |
| 199 | + |
| 200 | +## Node.js — Axios to WHATWG Fetch |
| 201 | +[nodejs.org/en/blog/migrations/axios-to-fetch](https://nodejs.org/en/blog/migrations/axios-to-fetch "Node.js — Axios to WHATWG Fetch") |
| 202 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">Fetch</span> <span class="jser-tag">HTTP</span> <span class="jser-tag">article</span></p> |
| 203 | + |
| 204 | +AxiosからNode.js Fetch APIへの移行ガイド。 |
| 205 | +Node.js v18.0.0以降を前提に、`axios.get()`/`axios.post()`/`axios.put()`/`axios.delete()`やフォーム送信などのコード変換例を解説している。 |
| 206 | +インターセプターやキャンセルトークンなどの一部機能は未対応である点についても解説されている |
| 207 | + |
| 208 | + |
| 209 | +---- |
| 210 | + |
| 211 | +## Introducing Secure Registry: install-time defense for the npm supply chain - StepSecurity |
| 212 | +[www.stepsecurity.io/blog/introducing-secure-registry-install-time-defense-for-the-npm-supply-chain](https://www.stepsecurity.io/blog/introducing-secure-registry-install-time-defense-for-the-npm-supply-chain "Introducing Secure Registry: install-time defense for the npm supply chain - StepSecurity") |
| 213 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p> |
| 214 | + |
| 215 | +StepSecurityによるnpmサプライチェーン攻撃に対するインストール時の防御を行うProxy型のレジストリサービス。 |
| 216 | +レジストリへのパッケージ取得要求をプロキシで評価し、新規公開からの一定期間ブロックするクールダウン期間、危険なパッケージのブロック、タイポスクワッティング対策などの機能を提供する。 |
| 217 | +ローカルの開発環境、CI/CDパイプラインなどでの利用を想定している。 |
| 218 | + |
| 219 | + |
| 220 | +---- |
| 221 | + |
| 222 | +## nkzw-tech/fate: fate is a modern data client for React. |
| 223 | +[github.com/nkzw-tech/fate](https://github.com/nkzw-tech/fate "nkzw-tech/fate: fate is a modern data client for React.") |
| 224 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">GraphQL</span></p> |
| 225 | + |
| 226 | +Reactのデータクライアントライブラリ。 |
| 227 | +Relay/GraphQLの設計から影響を受けて、コンポーネントごとに`view`でデータを宣言し、正規化キャッシュとデータマスキングを提供する。 |
| 228 | +Async React(Actions/Suspense/`use`)に対応し、ページネーション、Optimistic Updates、Server-Sent Eventsでの更新のサポート。 |
| 229 | +バックエンドとしてGraphQL/tRPC/Prisma/Drizzleに対応している。 |
| 230 | + |
| 231 | + |
| 232 | +---- |
| 233 | + |
| 234 | +## Announcing Web Serial Support in Firefox - Mozilla Hacks - the Web developer blog |
| 235 | +[hacks.mozilla.org/2026/05/web-serial-support-in-firefox/](https://hacks.mozilla.org/2026/05/web-serial-support-in-firefox/ "Announcing Web Serial Support in Firefox - Mozilla Hacks - the Web developer blog") |
| 236 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">browser</span> <span class="jser-tag">WebAPI</span> <span class="jser-tag">Mozilla</span></p> |
| 237 | + |
| 238 | +Firefox 151でWeb Serial APIをサポート。 |
| 239 | +Web Serial APIはJavaScriptからシリアルデバイスを読み書きするAPIで、USBやBluetoothで接続したマイコン、3Dプリンター、スマートメーターなどに直接アクセスできる。 |
| 240 | +ユーザーが明示的に許可したポートのみアクセス可能で、サイトandポートごとに権限を管理できる。 |
| 241 | + |
| 242 | + |
| 243 | +---- |
| 244 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 245 | + |
| 246 | +---- |
| 247 | + |
| 248 | +## tmikov/hermes-node: Node.js built-in module compatibility layer for the Hermes JS engine |
| 249 | +[github.com/tmikov/hermes-node](https://github.com/tmikov/hermes-node "tmikov/hermes-node: Node.js built-in module compatibility layer for the Hermes JS engine") |
| 250 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">library</span></p> |
| 251 | + |
| 252 | +HermesをベースにしたNode.js互換のJavaScript/TypeScriptランタイム。 |
| 253 | +TypeScriptファイルを直接実行でき、Chrome DevToolsプロトコルに対応したデバッガを内蔵している。 |
| 254 | +`fs`/`http`/`net`/`path`/`stream`などのNode.jsコアモジュールは、Node.js内部のJS実装をそのまま利用する。 |
| 255 | + |
| 256 | + |
| 257 | +---- |
0 commit comments