Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2022-11-02のJS: Node.js 18.12.0 LTS、Babel 7.20.0、TypeScript 4.9 RC #1016

Merged
merged 20 commits into from
Nov 2, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
---
title: "2022-11-02のJS: Node.js 18.12.0 LTS、Babel 7.20.0、TypeScript 4.9 RC"
author: "azu"
layout: post
date : 2022-11-02T01:40:40.691Z
category: JSer
tags:
- CSS
- TypeScript
- opinion
- React
- book

---

JSer.info #616 - Node.js 18系のLTS(Long Term Support)となるNode.js 18.12.0がリリースされました。

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

Node.js 18のLTSは、2023-10-18から2025-04-30までサポートされる予定です。

![Node.js Release schedule](https://user-images.githubusercontent.com/19714/199375528-9324cab4-37eb-452f-bcb7-703d8c578bdf.png)

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

また、Node.js 16のLTSはOpenSSLのライフサイクルとの都合から、普段より短い[2023-09-11](https://nodejs.org/en/blog/announcements/nodejs16-eol/)までのサポートとなっています。

- [Bringing forward the End-of-Life Date for Node.js 16 | Node.js](https://nodejs.org/en/blog/announcements/nodejs16-eol/)

----

Babel 7.20.0がリリースされました。

- [7.20.0 Released: Deno target and TypeScript 4.9 · Babel](https://babeljs.io/blog/2022/10/27/7.20.0)

現在RCのTypeScript 4.9のサポート、`@babel/preset-env`の`targets`としてDenoをサポートしています。
合わせてbabel-loader 9.0.0をリリースし、webpack5未満のサポート終了とNode.js 12以下のサポート終了なども含まれています。

----

TypeScript 4.9 RCがリリースされました。

- [Announcing TypeScript 4.9 RC - TypeScript](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-rc/)

型キャストはせずに型の一致をチェックできる`satisfies`演算子の追加、`in`演算子での型の絞り込みの改善、`accessor`キーワードのサポート、`== NaN`をコンパイルエラーに変更などが含まれます。
また、`--watch`でのファイル監視のデフォルトを`useFsEvents`に変更、値と型を同じ`exports`フィールドの`typeVersions`の優先度を修正なども含まれています。

RCリリースに合わせて、次のバージョンである5.0での予定についてのIssueも作られています。

- [TypeScript 5.0 Iteration Plan · Issue #51362 · microsoft/TypeScript](https://github.com/microsoft/TypeScript/issues/51362)

5.0では、ECMAScript Stage 3の[Decoratorのサポート](https://github.com/microsoft/TypeScript/issues/48885)、[Numeric enumとLiteral enumの統合](https://github.com/microsoft/TypeScript/pull/50528)などが予定されています。
また、[Module Resolutionsの取り組み](https://github.com/microsoft/TypeScript/issues/50152)を進めたり、[.tsファイルのimportの許可](https://github.com/microsoft/TypeScript/issues/37582)、[.js以外のファイルに対する.d.tsのサポート](https://github.com/microsoft/TypeScript/issues/50133)なども進める予定となっています。
その他には[tsconfig.jsonでの`extends`で配列指定の許可](https://github.com/microsoft/TypeScript/pull/50403)、[`// @ts-option`でファイルごとのTS設定のサポート](https://github.com/microsoft/TypeScript/pull/49886)などの予定されています。

----

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

----

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

Node.js v18.12.0リリース。
Node.js 18のLTSとなるバージョン。
Node.js 18のLTSは2025年4月までメンテナンスされる予定。


----

## vite/CHANGELOG.md at main · vitejs/vite
[github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#320-2022-10-26](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#320-2022-10-26 "vite/CHANGELOG.md at main · vitejs/vite")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">ReleaseNote</span></p>

Vite 3.2.0リリース。
Library Modeで複数のエントリーポイントをサポート、`build.modulePreload`オプションの追加、ErrorOverlayのスタイルをカスタマイズできるようになるなど


----

## 7.20.0 Released: Deno target and TypeScript 4.9 · Babel
[babeljs.io/blog/2022/10/27/7.20.0](https://babeljs.io/blog/2022/10/27/7.20.0 "7.20.0 Released: Deno target and TypeScript 4.9 · Babel")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">babel</span> <span class="jser-tag">ReleaseNote</span></p>

Babel v7.20.0リリース。
TypeScript 4.9のサポート、`@babel/preset-env`の`targets`としてDenoをサポート。
合わせてbabel-loader 9.0.0をリリースし、webpack5未満のサポート終了とNode.js 12以下のサポート終了など


----

## Deno 1.27: Major IDE Improvements
[deno.com/blog/v1.27](https://deno.com/blog/v1.27 "Deno 1.27: Major IDE Improvements")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p>

Deno v1.27リリース。
npmパッケージの`@types`を利用できるように、Node-APIのサポート、Lockファイルのフォーマット変更など。
`navigator.language` Web APIの実装、V8 10.8へ更新など


----

## Release v7.0.0 · pixijs/pixijs
[github.com/pixijs/pixijs/releases/tag/v7.0.0](https://github.com/pixijs/pixijs/releases/tag/v7.0.0 "Release v7.0.0 · pixijs/pixijs")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">canvas</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>

PixiJS v7.0.0リリース。
IEのサポート終了、polyfillの削除、InteractionManagerを削除しEventSystemをデフォルト化、`peerDependencies`を利用しないように変更など

- [v7 Migration Guide · pixijs/pixijs Wiki](https://github.com/pixijs/pixijs/wiki/v7-Migration-Guide "v7 Migration Guide · pixijs/pixijs Wiki")

----

## Release v3.0.279 · mozilla/pdf.js
[github.com/mozilla/pdf.js/releases/tag/v3.0.279](https://github.com/mozilla/pdf.js/releases/tag/v3.0.279 "Release v3.0.279 · mozilla/pdf.js")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">PDF</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>

pdf.js v3.0.279リリース。
メジャーアップデートとなるリリースでEditor modeの追加、DeprecatedとなっているAPIの削除など


----

## Release v1.9.0-rc.0 · reduxjs/redux-toolkit
[github.com/reduxjs/redux-toolkit/releases/tag/v1.9.0-rc.0](https://github.com/reduxjs/redux-toolkit/releases/tag/v1.9.0-rc.0 "Release v1.9.0-rc.0 · reduxjs/redux-toolkit")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">redux</span> <span class="jser-tag">ReleaseNote</span></p>

Redux Toolkit v1.9.0-rc.0リリース。
`autoBatchEnhancer`の追加、`fetchBaseQuery`でglobal optionを渡せるようになるなど


----

## Announcing TypeScript 4.9 RC - TypeScript
[devblogs.microsoft.com/typescript/announcing-typescript-4-9-rc/](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-rc/ "Announcing TypeScript 4.9 RC - TypeScript")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">ReleaseNote</span></p>

TypeScript 4.9 RCリリース。
型キャストはせずに型の一致をチェックできる`satisfies`演算子の追加、`in`演算子での型の絞り込みの改善、`accessor`キーワードのサポート、`== NaN`をコンパイルエラーに変更など。
`--watch`でのファイル監視のデフォルトを`useFsEvents`に変更、値と型を同じ`exports`フィールドの`typeVersions`の優先度を修正など


----

## Mixing It Up: Remix Joins Shopify to Push the Web Forward — Development (2022)
[shopify.engineering/remix-joins-shopify](https://shopify.engineering/remix-joins-shopify "Mixing It Up: Remix Joins Shopify to Push the Web Forward — Development (2022)")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Remix</span> <span class="jser-tag">news</span></p>

ShopifyがRemixを買収し、RemixはShopifyの下で開発を継続する。
ShopifyのHydrogenにもRemixのdata loadingパターンを組み込むなどの変更をしていく予定。
また、同時にVanilla ExtractのCreatorであるMark DalgleishもRemixに参加する予定となっている。

- [Remixing Shopify | Remix](https://remix.run/blog/remixing-shopify "Remixing Shopify | Remix")
- [Roadmap • Hydrogen: Shopify’s headless commerce framework](https://hydrogen.shopify.dev/roadmap/ "Roadmap • Hydrogen: Shopify’s headless commerce framework")
- [🧁 Mark Dalgleish on Twitter: &amp;quot;I&#039;m super excited to announce that next week I&#039;m joining the @remix\_run team at @Shopify.&amp;quot; / Twitter](https://twitter.com/markdalgleish/status/1587519372771217409 "🧁 Mark Dalgleish on Twitter: &amp;amp;quot;I&amp;#039;m super excited to announce that next week I&amp;#039;m joining the @remix\_run team at @Shopify.&amp;amp;quot; / Twitter")

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

----

## Why We&#039;re Breaking Up with CSS-in-JS - DEV Community 👩‍💻👨‍💻
[dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b](https://dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b "Why We&#039;re Breaking Up with CSS-in-JS - DEV Community 👩‍💻👨‍💻")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span> <span class="jser-tag">opinion</span></p>

CSS-in-JSのランタイムパフォーマンス問題についての記事。


----

## Airbnb&#039;s Trip to Linaria | The Airbnb Tech Blog
[medium.com/airbnb-engineering/airbnbs-trip-to-linaria-dc169230bd12](https://medium.com/airbnb-engineering/airbnbs-trip-to-linaria-dc169230bd12 "Airbnb&#039;s Trip to Linaria | The Airbnb Tech Blog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">article</span> <span class="jser-tag">opinion</span></p>

AirbnbでCSS-in-JSとしてreact-with-stylesを開発し使っていたが、パフォーマンスとメンテナンス性の問題から、Linariaへ移行していくという話

- [airbnb/react-with-styles: Use CSS-in-JavaScript with themes for React without being tightly coupled to one implementation](https://github.com/airbnb/react-with-styles "airbnb/react-with-styles: Use CSS-in-JavaScript with themes for React without being tightly coupled to one implementation")

----

## 【脱ランタイムCSS in JS】styled-componentsを別のCSS in JSに自動置換するCLIツールの開発
[zenn.dev/yukiyada/articles/0ac6ef8d566b96](https://zenn.dev/yukiyada/articles/0ac6ef8d566b96 "【脱ランタイムCSS in JS】styled-componentsを別のCSS in JSに自動置換するCLIツールの開発")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">article</span> <span class="jser-tag">Tools</span></p>

styled-componentsをlinariaやvanilla-extractに移行するツールの仕組みについての記事


----
<h1 class="site-genre">サイト、サービス、ドキュメント</h1>

----

## sqlite3 wasm docs: About the sqlite3 WASM/JS Subproject
[sqlite.org/wasm/doc/trunk/about.md](https://sqlite.org/wasm/doc/trunk/about.md "sqlite3 wasm docs: About the sqlite3 WASM/JS Subproject")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">SQLite</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">WebAssembly</span> <span class="jser-tag">library</span></p>

sqlite3をWebAssemblyとJavaScriptを使ってブラウザで動かすことを目的にした公式のサブプロジェクト。


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

----

## dudykr/stc: Speedy TypeScript type checker
[github.com/dudykr/stc](https://github.com/dudykr/stc "dudykr/stc: Speedy TypeScript type checker")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">Rust</span></p>

Rustで書かれたTypeScriptの型チェッカー

- [Open-sourcing the new TypeScript type checker](https://kdy1.dev/posts/2022/10/open-sourcing-stc "Open-sourcing the new TypeScript type checker")

----
<h1 class="site-genre">書籍関係</h1>

----

## Fluent React \[Book\]
[www.oreilly.com/library/view/fluent-react/9781098138707/](https://www.oreilly.com/library/view/fluent-react/9781098138707/ "Fluent React \[Book\]")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">book</span></p>

2024年3月発売予定
Reactについての書籍


----