Fork me on GitHub

2020-08-18のJS: Storybook 6.0.0、npm 7 beta、hapi 20(Maintainerの交代)

Edit on GitHub 編集履歴を見る

JSer.info #501 - Storybook 6.0.0がリリースされました。

TypeScriptのビルトインサポート、ストーリー関数の最初の引数にArgsオブジェクトを渡すように、addon-knobsの代わりとなるaddon-controlsの導入。
複数のStoryboardを1つのStorybookにまとめることができるようになるなど。
それぞれの機能追加に関する記事も公開されています。

また5.3から6.0へのマイグレーションガイドとマイグレーションコマンド(npx sb upgrade)も公開されています。


npm 7がベータリリースされました。

peerDependenciesがデフォルトでインストールされるようになり、npm 6の挙動を再現する--legacy-peer-depsが追加されています。
npmは2まではpeerDependenciesを自動インストールしていましたが、3でpeerDependenciesをデフォルトでインストールしないように変更しています。

peerDependenciesに関するyarnpnpmのスタンスについては、次のRFC Issueにかかれています。

機能追加としてはacceptDependenciesのサポート、package-lock.jsonの形式変更とyarn.lockのサポート、workspacesフィールドのサポートなども含まれています。
また、npm run-scriptにおけるnpm_package_*npm_package_*の環境変数の削除/変更が行われています。

その他には、npxの代わりとなるnpm execコマンドが追加され、npxnpm execのaliasとなる予定とのことです。


Node.jsウェブフレームワークのhapi 20.0.0がリリースされました。

このMajor updateには機能的な破壊的な変更はありませんが、メンテナーがEran HammerからTechnical Steering Committeeへと引き継がれる変更が含まれています。

経緯については次のIssueで解説されていますが、商用サポートの採算的な問題とモチベーションの問題からhapiの作者であるEran Hammerによるメンテナンスを今年で終了することが伝えられていました。
この問題を受けてメンテナンスを引き継ぐためのhapi Technical Steering Committee(TSC)が設立され、20.0.0からはTSCがhapiのメンテナーとなります。


ヘッドライン


Release v6.0.0 · storybookjs/storybook

github.com/storybookjs/storybook/releases/tag/v6.0.0

JavaScript UI Tools ReleaseNote

Storybook 6.0.0リリース。
TypeScriptのビルトインサポート、ストーリー関数の最初の引数にArgsオブジェクトを渡すように、addon-knobsの代わりとなるaddon-controlsの導入。
複数のStoryboardを1つのStorybookにまとめることができるようになるなど。
また5.3から6.0へのマイグレーションガイドも公開されている


The npm Blog — npm v7 Series - Beta Release! And: SemVer-Major...

blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major

npm ReleaseNote

npm 7 betaリリース。
peerDependenciesがデフォルトでインストールされるようになり、過去の挙動を再現する--legacy-peer-depsが追加された。
acceptDependenciesのサポート、package-lock.jsonの形式変更とyarn.lockのサポート、workspacesフィールドのサポートなど。
また、npm run-scriptにおけるnpm_package_*npm_package_*の環境変数の削除などが行われている


Node v14.8.0 (Current) | Node.js

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

node.js ReleaseNote

Node.js 14.8.0リリース。
Top-Level Awaitのデフォルトサポート、async_hooksモジュールにAsyncResource.bindの追加など


Release Version 8.0.0 · acornjs/acorn

github.com/acornjs/acorn/releases/tag/8.0.0

JavaScript ECMAScript library

JavaScriptパーサであるAcorn 8.0.0リリース。
ECMAScript moduleとしてロードできるように、ecmaVersionオプションが必須となった


Update for Customers Using PhoneGap and PhoneGap Build | by Adobe I/O | Aug, 2020 | PhoneGap

blog.phonegap.com/update-for-customers-using-phonegap-and-phonegap-build-cc701c77502c

JavaScript app news

ウェブ技術を使ってネイティブアプリを作れるPhoneGapのビルドサービスが2020年10月で終了する。
代替としてApache Cordova、Ionicなどがあることについて。


20.0.0 Release Notes · Issue #4138 · hapijs/hapi

github.com/hapijs/hapi/issues/4138

node.js library ReleaseNote

hapi 20.0.0リリース。
コアメンテナーが交代しTechnical Steering Committee (TSC) ベースのプロジェクトに変更がメインのアップデート。
@hapi/joiから@hapi/validateに変更、Node.js 14のサポートなど


emscripten/ChangeLog.md at master · emscripten-core/emscripten

github.com/emscripten-core/emscripten/blob/master/ChangeLog.md#200-08102020

WebAssembly JavaScript library Tools ReleaseNote

C/C++などをWebAssemblyにコンパイルするEmscripten 2.0リリース。
fastcomp backendの削除、Python 2のサポートを削除。
また例外情報のメタデータをJSではなくWebAssembly.Memoryに保存することで例外処理がスレッドセーフになるような変更など


Release 2.11.0 · qunitjs/qunit

github.com/qunitjs/qunit/releases/tag/2.11.0

JavaScript test library ReleaseNote

QUnit 2.11.0リリース。
Node.js 10未満のサポートを削除、assert.trueassert.falseの追加、HTMLレポートの検索改善など


Ajv Joins OpenJS Foundation as an Incubation Project - OpenJS Foundation

openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/

JSON library news JavaScript

JSON SchemaバリデーターであるAjvがOpenJS Foundationに入った。


アーティクル


Node.jsでプロトタイプ汚染後に任意コード実行まで繋げた事例 - knqyf263's blog

knqyf263.hatenablog.com/entry/2020/08/11/050342

JavaScript article security

Node.jsにおけるプロトタイプ汚染の実例を紹介している記事


The Golden Rule of Generics

effectivetypescript.com/2020/08/12/generics-golden-rule/

TypeScript article

TypeScriptのGenericsを使うべきかを判断するとき目安として「型パラメーターは2回表示されるとき」というルールについて。
いろいろなコード例ともにGenericsの利用例を紹介している


Optimizing CSS for faster page loads - Tomas Pustelnik's personal website

pustelto.com/blog/optimizing-css-for-faster-page-loads/

CSS article performance

CSSのCritical Pathの最適化について。
CSSのロードタイムに与える影響、Critical CSSの分離と遅延ロード、CSSのCode Splittingについて


Node.js and the struggles of being an EventTarget

www.nearform.com/blog/node-js-and-the-struggles-of-being-an-eventtarget/

node.js article

Node.jsにEventTargetがなぜ実装されたのかについて。
Node.jsにFethやAbortControllerなどのウェブ標準のAPIを実装するためにブラウザと互換性のあるEventTarget APIが必要である点について。
EventTargetを実装するにあたっての互換性、複数継承、パフォーマンスの問題をどう解決したかについて


サイト、サービス、ドキュメント


twilco/kosmonaut: A web browser engine for the space age

github.com/twilco/kosmonaut

Rust browser

ServoをインスパイアしたRust製のブラウザエンジン。


Shopify/web-foundation: Principles, decision logs, best practices, and common configuration for building web apps at Shopify

github.com/Shopify/web-foundation

document

Shopifyのウェブ開発における設定やその解説ドキュメントをまとめたリポジトリ


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


ealush/vest: Vest ✅ Declarative validations framework

github.com/ealush/vest

JavaScript library

テストフレームワークライクなバリデーションライブラリ。
テストコードのようにバリデーションのコードを書けるライブラリ。


Run JavaScript Everywhere.

nodejs.dev/

node.js document

Node.jsについての入門ドキュメントサイト


Native mobile apps in JavaScript. Fast and secure framework. - Tabris

tabris.com/

JavaScript Native iOS Android library

React NativeのようにJavaScriptで書いてOSネイティブのUIを描画できるモバイルアプリ作成フレームワーク。


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