Fork me on GitHub

2021-05-18のJS: Node.js 14.17.0、TypeScript 4.3 RC(インクリメンタルビルドの改善)、Angular v12

Edit on GitHub 編集履歴を見る

JSer.info #540 - 現在のLTSの最新版であるNode v14.17.0がリリースされました。

Node v14.17.0では、Node.js 15.x で追加された機能やモジュールがバックポートされています。

診断情報を扱うdiagnostics_channelモジュールの追加、UUID v4を生成するcrypto.randomUUID()が追加されています。
crypto.randomUUID() はWHATWGで定義されている仕様で、Chromeにも実装が追加されています。

また、--experimental-abortcontrollerの実験フラグ付きですが、AbortControllerAbortSignalの対応が次のメソッドに追加されています。

  • child_process.exec
  • child_process.execFile
  • child_process.fork
  • child_process.spawn
  • dgram.createSocket
  • events.on
  • events.once
  • fs.readFile
  • fs.watch
  • fs.writeFile
  • http.request
  • https.request
  • http2Session.request
  • Promise版のsetImmediatesetTimeout

TypeScript 4.3 RC(リリース候補)がリリースされました。

基本的な変更内容はBetaのものを含んでいます。

RCで新たに追加されたものとして、--incremental--watchを使った初回のビルドが遅い問題が解消されています。

また、--incrementalフラグなどを使った際に生成される.tsbuildinfoのファイルサイズが改善されています。


6ヶ月ごとにメジャーアップデートされるAngularの最新版であるAngular 12がリリースされました。

View Engineは非推奨となりIvyがデフォルトへと移行、Legacy i18n Message IDsからの移行ツールが公開されています。

以前、開発終了を告知されていたProtractorについても、Angular 12からProtractorはデフォルトでは新規プロジェクトには含めないようになっています。

また、Angular 12ではIE 11のサポートが非推奨となり警告が出るようになっています。
IE 11のサポートはAngular 13で削除される予定です。
そのため、AngularでのIEサポートはAngular 12が最後となり、Angular 12のLTS期限である2022年11月で完全にIEサポートが終了する予定となっています。

その他には、インラインSassのサポートなど。 TypeScript 4.2へのアップデート、webpack 5の正式サポートなども含まれています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


What do you not like about DefinitelyTyped as a user and contributor? · Issue #44030 · microsoft/TypeScript

github.com/microsoft/TypeScript/issues/44030

TypeScript issue

DefinitelyTypedへの意見を募集しているIssue


Node v14.17.0 (LTS) | Node.js

nodejs.org/en/blog/release/v14.17.0/

node.js ReleaseNote

Node v14.17.0リリース。
試験的にdiagnostics_channelを追加、crypto.randomUUID()の追加。
また、Node.js 15で実装されていたコアモジュールにおけるAbortControllerAbortSignalの対応をバックポートなど


Deno 1.10 Release Notes | Deno Blog

deno.com/blog/v1.10

deno ReleaseNote

Deno 1.10リリース。
deno testがisolateした状態でparallelにテストを実行、permissionsの指定に対応、出力の変更、コメントのコードの型チェックに対応など。
Worker.postMessageがstructured clone algorithmに対応、localStorageなどのWeb Storage APIに対応。
WebAssembly.Memorysharedオプションに対応、--import-mapへリモートURLを指定できるようになるなど


Announcing TypeScript 4.3 RC | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-4-3-rc/

TypeScript ReleaseNote

TypeScript 4.3 RCリリース。
setterにgetterとは異なる型を指定できるように、overrideキーワードの追加、Template String Typeの改善。
Private Class Elements(fields/methods/accessors)のサポート、static Index Signatureのサポート。
ConstructorParametersがAbstract classをサポート、Genericsにおける型の絞り込みの改善、Promiseオブジェクトを条件式に渡してしまうミスのチェックを追加。
その他には、.tsbuildinfoのサイズ改善、watch時の初回ビルドの改善など。


Angular v12 is now available. It’s that time again, friends — we’re… | by Mark Techson | May, 2021 | Angular Blog

blog.angular.io/angular-v12-is-now-available-32ed51fbfd49

Angular ReleaseNote

Angular 12リリース。
View Engineは非推奨となりIvyがデフォルトへと移行、Legacy i18n Message IDsからの移行ツール、インラインSassのサポートなど。
TypeScript 4.2へのアップデート、webpack 5の正式サポート、IE 11サポートの非推奨化など


V8 release v9.1 · V8

v8.dev/blog/v8-release-91

V8 ReleaseNote

V8 v9.1リリース。
Top-level awaitのデフォルトサポート、#foo in objのPrivate brand checksのサポートなど


Announcing Docusaurus 2 Beta | Docusaurus

docusaurus.io/blog/2021/05/12/announcing-docusaurus-two-beta

React document

Docusaurus 2 Betaリリース


アーティクル


Writing A Type Safe Store | Lachlan Miller

lachlan-miller.me/articles/advanced-type-a-type-safe-store-for-vue-3

Vue TypeScript article

Vueのステート管理ライブラリであるPiniaのType SafeなStoreの型定義の解説


Next Gen CSS: @container | CSS-Tricks

css-tricks.com/next-gen-css-container/

CSS article

@containerについての記事。
親要素にはcontainプロパティを指定する必要がある点、@containerでのレスポンシブデザインについて


Cross-browser tracking vulnerablity in Tor, Safari, Chrome and Firefox - FingerprintJS

fingerprintjs.com/blog/external-protocol-flooding/

browser security privacy article

ブラウザからURLスキームでアプリを開くときの挙動を利用してフィンガープリントできるという話。
未知のプロトコルを開く際にはダイアログでの確認やユーザインタラクションが必要となっている。
しかし、それぞれのブラウザで既知のプロトコルやabout:blankを使ったSOP(Same Origin Policy)での抜け道で、どのアプリがインストールされているかを判定できるという話


DocBaseのフロントエンド改修をどのように進めたか – KRAY Inc.

kray.jp/blog/how-to-docbase-renewal/

CoffeeScript React TypeScript refacoring article

Backbone + Marionette + CoffeeScriptで書かれていたウェブサービスをReact + TypeScriptに一括で移行した話。
E2Eを使ったテスト、構造を維持しながらReact化、コンポーネントへの分離などの移行の方法についてなど


Babel is used by millions, so why are we running out of money? · Babel

babeljs.io/blog/2021/05/10/funding-update.html

babel article

Babelの資金の状態、ロードマップ、寄付について。


styled-componentsの採用と既存資産を捨てた理由 - Cybozu Inside Out | サイボウズエンジニアのブログ

blog.cybozu.io/entry/2020/06/25/105457

CSS React article sass

Sassで書かれていたスタイルをCSS in JSに移行する話。
styled-componentsを使って書く場合にスタイリングとJSXを分離するためのルール、Sassの変数を抽出して移行するスクリプトについてなど


ソフトウェア、ツール、ライブラリ関係


coderaiser/simport: Import like with require but using async

github.com/coderaiser/simport

node.js library

ESMなNode.jsでrequire__filename__dirnameなどのshim機能を提供するライブラリ


この記事へ修正リクエストをする
JSer.info Slackに参加する