Skip to content

Commit

Permalink
2023-10-25のJS: Node.js 21(Current)とNode.js 20.9.0(LTS)、Yarn 4、tsc --i…
Browse files Browse the repository at this point in the history
…solatedDeclarations (#1130)

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update 666 draft

* Update _i18n/ja/_posts/2023/2023-10-25-node.js-21currentnode.js-20.9.0lts-yarn-4-tsc-isolateddeclarations.md

* Delete _i18n/ja/_posts/2023/2023-10-25-666draft.md

* Update _i18n/ja/_posts/2023/2023-10-25-node.js-21currentnode.js-20.9.0lts-yarn-4-tsc-isolateddeclarations.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
azu and github-actions[bot] authored Oct 25, 2023
1 parent f2ceaa4 commit 6ece1a0
Showing 1 changed file with 231 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
---
title: "2023-10-25のJS: Node.js 21(Current)とNode.js 20.9.0(LTS)、Yarn 4、tsc --isolatedDeclarations"
author: "azu"
layout: post
date : 2023-10-25T13:19:35.470Z
category: JSer
tags:
- Tools
- nodejs
- rspack
- Vue
- React

---

JSer.info #666 - Node.js 21がリリースされました。

- [Node.js 21 is now available! | Node.js](https://nodejs.org/en/blog/announcements/v21-release-announce)

奇数バージョンはいわゆる開発バージョンとなりLTSにはなりません。
Node.js 21では、Fetch/WebStreams APIのStable化、V8 11.8へのアップデート、`node --test`でのglobのサポートが追加されています。
また、モジュールのデフォルトをESMにできる`--experimental-default-type`、Magic BytesでWasmを判定する`--experimental-wasm-modules`の追加されています。
これらのフラグについては次の記事で解説しています。

- [Deep Dive: Node.jsのESMデフォルト化への道 - JSer.info](https://jser.info/2023/10/18/node.js-roadmap-esm-by-default/)

また、`fs.writeFile``flush`オプションの追加、StreamsとHTTPのパフォーマンス改善、`navigator`のグローバルオブジェクトをサポートなども追加されています。

---

同じくNode.js v20.9.0がリリースされています。

- [Node v20.9.0 (LTS) | Node.js](https://nodejs.org/en/blog/release/v20.9.0)

Node.js v20.9.0は、Node.js 20.x のLTSの開始となるバージョンです。
Node.js 20.xのLTSは、2026-04-30までメンテナンスされる予定です。

- [nodejs/Release: Node.js Release Working Group](https://github.com/nodejs/release)

---

パッケージマネージャーであるYarn 4.0がリリースされました。

- [Release: Yarn 4.0 🪄⚗️ | Yarn](https://yarnpkg.com/blog/release/4.0)

Node.js 12/14/16のサポート終了、`yarn set version``packageManager`フィールドを更新するように変更されています。
ロックファイルとレジストリのメタデータが一致しているかを検証するHardened Modeの追加、制約エンジンをJSベースに置き換えが行われています。
またYarn 2/3ではプラグインとなっていた`yarn upgrade-interactive``yarn stage`をコアに取り込み、パフォーマンスの改善なども含まれています。


----

{% include inline-support.html %}

----

<h1 class="site-genre">ヘッドライン</h1>

----

## Release v0.3.7 · web-infra-dev/rspack
[github.com/web-infra-dev/rspack/releases/tag/v0.3.7](https://github.com/web-infra-dev/rspack/releases/tag/v0.3.7 "Release v0.3.7 · web-infra-dev/rspack")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">ReleaseNote</span></p>

rspack v0.3.7リリース。
`experiments.rspackFuture.newResolver`で新しいResolverをOpt-inできるように。
styled-componentsのサポート、Vue 2でのCSSの抽出をサポートなど


----

## Rspress, the Rspack-based static site generator · web-infra-dev · Discussion #5
[github.com/orgs/web-infra-dev/discussions/5](https://github.com/orgs/web-infra-dev/discussions/5 "Rspress, the Rspack-based static site generator · web-infra-dev · Discussion #5")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Rust</span> <span class="jser-tag">document</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>

RspackベースのDocusarusu/VitePressライクな静的サイトジェネレータであるRspress 1.0.0リリース。


----

## Release v3.8.0 · nuxt/nuxt
[github.com/nuxt/nuxt/releases/tag/v3.8.0](https://github.com/nuxt/nuxt/releases/tag/v3.8.0 "Release v3.8.0 · nuxt/nuxt")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Vue</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>

Nuxt.js v3.8.0リリース。
Nuxt DevTools 1.0、`@nuxt/image`の自動インストール、アプリの構成を定義したメタファイルの出力に対応、NuxtLinkのデフォルトの挙動を設定できるように。
`useAsyncData``useFetch``deep`オプションの追加、`getCachedData`でカスタムキャッシュをサポートなど

- [Release v1.0.0 · nuxt/devtools](https://github.com/nuxt/devtools/releases/tag/v1.0.0 "Release v1.0.0 · nuxt/devtools")

----

## Storybook 7.5
[storybook.js.org/blog/storybook-7-5/](https://storybook.js.org/blog/storybook-7-5/ "Storybook 7.5")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Design</span> <span class="jser-tag">Development</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>

Storybook 7.5リリース。
Vite 5のサポート、`storiesOf`を非推奨化。
Next.jsとAngularのサポート改善、Lit 3.0のサポートなど


----

## Announcing TanStack Query v5 | TanStack Blog
[tanstack.com/blog/announcing-tanstack-query-v5](https://tanstack.com/blog/announcing-tanstack-query-v5 "Announcing TanStack Query v5 | TanStack Blog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">Vue</span> <span class="jser-tag">Solid</span> <span class="jser-tag">Svelte</span> <span class="jser-tag">HTTP</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>

TanStack Query v5リリース。
APIの引数の形式を変更、Suspenseのサポート、開発者ツールの刷新など。

- [Announcing TanStack Query v5 | TanStack Blog](https://tanstack.com/blog/announcing-tanstack-query-v5 "Announcing TanStack Query v5 | TanStack Blog")
- [Migrating to TanStack Query v5 | TanStack Query Docs](https://tanstack.com/query/v5/docs/react/guides/migrating-to-v5 "Migrating to TanStack Query v5 | TanStack Query Docs")

----

## Release: Yarn 4.0 🪄⚗️ | Yarn
[yarnpkg.com/blog/release/4.0](https://yarnpkg.com/blog/release/4.0 "Release: Yarn 4.0 🪄⚗️ | Yarn")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">yarn</span> <span class="jser-tag">ReleaseNote</span></p>

Yarn 4.0リリース。
Node.js 12/14/16のサポート終了、`yarn set version``packageManager`フィールドを更新するように。
ロックファイルとレジストリのメタデータが一致しているかを検証するHardened Modeの追加、制約エンジンをJSベースに置き換え。
`yarn upgrade-interactive``yarn stage`をコアに取り込み、パフォーマンスの改善など


----

## Release v0.3.8 · web-infra-dev/rspack
[github.com/web-infra-dev/rspack/releases/tag/v0.3.8](https://github.com/web-infra-dev/rspack/releases/tag/v0.3.8 "Release v0.3.8 · web-infra-dev/rspack")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">ReleaseNote</span></p>

rspack v0.3.8リリース。
Top-Level `await`のサポートなど


----

## Node v20.9.0 (LTS) | Node.js
[nodejs.org/en/blog/release/v20.9.0](https://nodejs.org/en/blog/release/v20.9.0 "Node v20.9.0 (LTS) | Node.js")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>

Node.js v20.9.0リリース。
Node.js 20.x系のLTSとなるバージョン。
2026年4月までメンテナンスされる予定。


----

## Node.js 21 is now available! | Node.js
[nodejs.org/en/blog/announcements/v21-release-announce](https://nodejs.org/en/blog/announcements/v21-release-announce "Node.js 21 is now available! | Node.js")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>

Node.js v21リリース。
current(開発版)となるメジャーバージョン。
Fetch/WebStreams APIのStable化、V8 11.8へのアップデート、`node --test`でのglobのサポート。
モジュールのデフォルトをESMにできる`--experimental-default-type`、Magic BytesでWasmを判定する`--experimental-wasm-modules`の追加。
`fs.writeFile``flush`オプションの追加、StreamsとHTTPのパフォーマンス改善、`navigator`のグローバルオブジェクトをサポートなど

- [Node v21.0.0 (Current) | Node.js](https://nodejs.org/en/blog/release/v21.0.0 "Node v21.0.0 (Current) | Node.js")

----
<h1 class="site-genre">アーティクル</h1>

----

## The State of WebAssembly 2023
[blog.scottlogic.com/2023/10/18/the-state-of-webassembly-2023.html](https://blog.scottlogic.com/2023/10/18/the-state-of-webassembly-2023.html "The State of WebAssembly 2023")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">Survey</span></p>

WebAssemblyについて開発者アンケートの結果


----

## Goodbye, Node.js Buffer — Sindre Sorhus
[sindresorhus.com/blog/goodbye-nodejs-buffer](https://sindresorhus.com/blog/goodbye-nodejs-buffer "Goodbye, Node.js Buffer — Sindre Sorhus")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">opinion</span> <span class="jser-tag">article</span></p>

Node.jsの`Buffer`はブラウザとの互換性がないため、`Uint8Array`を代わりに使おうという話。
現在の`Buffer``Uint8Array`のサブクラスとして実装されているが、`slice()`の動作の違いや移植性が悪いというなどの問題がある。
`Uint8Array`を直接扱う方法やマイグレーションなどについて

- [Start moving to Uint8Array in new APIs? · Issue #41588 · nodejs/node](https://github.com/nodejs/node/issues/41588 "Start moving to Uint8Array in new APIs? · Issue #41588 · nodejs/node")

----

## JS Decorators Explained: 10 Years Journey to the Real Implementation | Binary Studio
[binary-studio.com/blog/ecmascript-decorators/](https://binary-studio.com/blog/ecmascript-decorators/ "JS Decorators Explained: 10 Years Journey to the Real Implementation | Binary Studio")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">ECMAScript</span> <span class="jser-tag">article</span> <span class="jser-tag">history</span></p>

現在Stage 3のDecoratorが、どのような今の形になったかについて


----
<h1 class="site-genre">スライド、動画関係</h1>

----

## Faster TypeScript builds with --isolatedDeclarations by Titian-Cornel Cernicova-Dragomir - GitNation
[portal.gitnation.org/contents/faster-typescript-builds-with-isolateddeclarations](https://portal.gitnation.org/contents/faster-typescript-builds-with-isolateddeclarations "Faster TypeScript builds with --isolatedDeclarations by Titian-Cornel Cernicova-Dragomir - GitNation")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">video</span> <span class="jser-tag">performance</span></p>

TypeScriptの型定義ファイルの出力をファイルごとに行える`--isolatedDeclarations`オプションを実装しているという話。
現在のTypeScriptの型定義の生成は依存グラフや推論された型に依存している。
いくつかの制限があるがファイルごとに独立して型定義を生成できるようにすることで、他のツールも型定義の生成が可能になり、またファイルごとに並列で処理できるためパフォーマンスが向上するという話。

- [Isolated declarations by dragomirtitian · Pull Request #53463 · microsoft/TypeScript](https://github.com/microsoft/TypeScript/pull/53463 "Isolated declarations by dragomirtitian · Pull Request #53463 · microsoft/TypeScript")
- [\`--isolatedDeclarations\` for standalone DTS emit · Issue #47947 · microsoft/TypeScript](https://github.com/microsoft/TypeScript/issues/47947 "\&#x60;--isolatedDeclarations\&#x60; for standalone DTS emit · Issue #47947 · microsoft/TypeScript")

----

## BlinkOn 18 - Sunnyvale + Virtual - YouTube
[www.youtube.com/playlist?list&#x3D;PL9ioqAuyl6UKYm7EYVa7FcKCR2kDCudII](https://www.youtube.com/playlist?list=PL9ioqAuyl6UKYm7EYVa7FcKCR2kDCudII "BlinkOn 18 - Sunnyvale + Virtual - YouTube")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">blink</span> <span class="jser-tag">Chrome</span> <span class="jser-tag">video</span> <span class="jser-tag">Conference</span></p>

BlinkOn 18の動画まとめ


----
<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1>

----

## AlexSergey/rockpack: Rockpack is a simple solution for creating React Application with Server Side Rendering, bundling, linting, testing within 5 minutes
[github.com/AlexSergey/rockpack](https://github.com/AlexSergey/rockpack "AlexSergey/rockpack: Rockpack is a simple solution for creating React Application with Server Side Rendering, bundling, linting, testing within 5 minutes")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">Tools</span> <span class="jser-tag">library</span> <span class="jser-tag">TypeScript</span></p>

Create React App的なReactでのアプリケーション開発をするツールキット


----

0 comments on commit 6ece1a0

Please sign in to comment.