Fork me on GitHub

2019-06-10のJS: mathjs v6、Modern JavaScriptパッケージの配布、Audits in Web Inspector

Edit on GitHub 編集履歴を見る

JSer.info #439 - 数値計算ライブラリのMath.js v6がリリースされました。

Math.jsは全体で200個以上の機能がありファイルサイズが137kB(gzip)もありました。
そのため、v6では必要なものだけをモジュールとして使えるようにするための構造的な変更が含まれています。
次のように書いた場合に、必要なもの以外を削除したりTree Shakingができるように"module" fieldに対応しています。

import { log } from "mathjs";

console.log(log(10))

また、グローバルな設定ではなくcreate関数で依存と設定から特定の機能を作れるようになっています。
その他にも、BigNumberの対応などを取り除いた軽量版のmathjs/numberも利用できるようになっています。

併せてパッケージ配布について書かれたEnabling Modern JavaScript on npmという記事も読むと良さそうです。Modern JavaScriptは「ES2015以降の構文を使った書かれたコード」ぐらいの意味ですが、npmパッケージとして配布されている多くのコードはES5に変換(Transpile)されたものが公開されています。そのため、パッケージの利用者はES5に変換されたコードを利用することになって、Modernを選択できなくなる問題について書かれています。

これを解決するために、WebpackやRollupではpackage.json"module" fieldなどをサポートし、パッケージ利用者が選択できるようになっています。
また、Microbundle@pika/packなどのModern JavaScriptをパッケージとして配布を補助するツールも出てきいますが、まだエコシステム全体としての固まりきっていない部分があるという話も書かれています。


次の記事ではSafari Technology Preview 75から追加されたSafariのAudit Tabについて解説されています。

デフォルトではアクセシビリティに関するAuditルールが定義されていて、アクセシビリティのチェックができます。

また、このAuditタブではTest Case Formatに従ったJSONを読み込むことで任意のチェックツールを定義できます。
次の記事では、ESLintをつかった*.jsファイルのチェックを行うルールを定義してAuditタブでチェックする方法を紹介しています。


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

JSer.info Sponsors

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


ヘッドライン


Node v12.4.0 (Current) | Node.js

nodejs.org/en/blog/release/v12.4.0/

node.js ReleaseNote

Node.js 12.4.0リリース。
import文でJSONを読み込める--experimental-json-modulesフラグの削除、V8 heap profilerを扱う--heap-profフラグの追加など


mathjs v6: a monolith turned modular - Jos de Jong

josdejong.com/blog/2019/06/08/mathjs-v6-a-monolith-turned-modular/

JavaScript library ReleaseNote

matchjs v6リリース。
モジューラーなアプローチで利用できるように変更。
グローバルな設定ではなくcreate関数で依存と設定から特定の機能を作れるように、ES moduleでimportした際にtree-shakingができるように。
またnumberのみをサポートしたバージョンも同梱されている。


Storybook 5.1

medium.com/storybookjs/storybook-5-1-50afd02b5bbb

開発環境 UI Tools ReleaseNote

Stroybook 5.1リリース。
React Nativeの再対応、A11y addonの改善、Context addonの追加、TypeScrip向けのpresetを追加など


Release v3.0.0 · mqttjs/MQTT.js

github.com/mqttjs/MQTT.js/releases/tag/v3.0.0

JavaScript library ReleaseNote

MQTT.js 3.0.0リリース。
MQTT 5.0をサポート。


アーティクル


Audits in Web Inspector | WebKit

webkit.org/blog/8935/audits-in-web-inspector/

safari debug article

Safariの開発者ツールに追加されたAudit Tabについて。
デフォルトではアクセシビリティについてのAuditが含まれていて、自分でAuditのルールを定義して追加できるようになっている。
例としてESLintを*.jsに対して実行するAuditルールが挙げられている。


An introduction to the MediaRecorder API - Twilio

www.twilio.com/blog/mediastream-recording-api

JavaScript audio tutorial article

MediaRecorder APIで音声の録音とダウンロードを行うチュートリアル


ECMAScript proposal updates @ 2019-06 | ECMAScript Daily

ecmascript-daily.github.io/ecmascript/2019/06/09/ecmascript-proposal-updates

ECMAScript proposal article

2019年6月のTC39ミーティングでStage変更があったECMAScript Proposalのまとめ。
Dynamic ImportがついにStage 4となった。


Dive into IndexedDB

flaviocopes.com/indexeddb/

JavaScript article

PromiseベースのIndexedDBラッパーであるidbを使ったIndexedDBについてのチュートリアル。
データの追加、削除、マイグレーションについて


Enabling Modern JavaScript on npm

jasonformat.com/enabling-modern-js-on-npm/

JavaScript article npm

npmにパッケージとして公開するモジュールについて。
Bundleツールなどの変化によって、Transpile済みのファイルのみを配布すると利用者は最適化ができない問題について。
package.json"main""module""unpkg"フィールドと配布するモジュールの形式やパッケージ作者が配布時に気をつける点。
またmicrobundleや@pika/packなどのパッケージ配布の補助ツールについてなど


CSS Grid Level 2 - subgrid is coming to Firefox - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2019/06/css-grid-level-2-subgrid-is-coming-to-firefox/

CSS article

CSS Grid Level 2のサブグリッドについて


スライド、動画関係


Inside Frontend #3 - YouTube

www.youtube.com/playlist?list=PLZFhK-XSlb82hef6Sxyqcc-6e8xVTbaIE&app=desktop

HTML CSS JavaScript node.js video イベント

Inside Frontend #3 の動画一覧


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


npmfs - home

npmfs.com/

npm webservice

npmに公開されているパッケージのソースコードビューアサービス。
特定のバージョンのコードを参照したり、バージョン間のDiffを見られるようになっている。


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


urql

formidable.com/open-source/urql/

GraphQL React library

React Hooksに対応したGraphQLを扱うReact向けライブラリ。
Queryの取得状態や取得結果を使ったコンポーネントを扱える


lukeed/tinydate: A tiny (340B) reusable date formatter. Extremely fast!

github.com/lukeed/tinydate

JavaScript library

ファイルサイズが小さなDate Formatterライブラリ。


書籍関係


実践TypeScript ~ BFFとNext.js&Nuxt.jsの型定義~ | 吉井 健文 |本 | 通販 | Amazon

www.amazon.co.jp/dp/483996937X/

TypeScript book

2019年6月26日発売
TypeSctiptとNext.js、Nuxt.jsについての書籍


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