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をおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Node v12.4.0 (Current) | Node.js
nodejs.org/en/blog/release/v12.4.0/
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/
matchjs v6リリース。
モジューラーなアプローチで利用できるように変更。
グローバルな設定ではなくcreate
関数で依存と設定から特定の機能を作れるように、ES moduleでimportした際にtree-shakingができるように。
またnumber
のみをサポートしたバージョンも同梱されている。
Storybook 5.1
medium.com/storybookjs/storybook-5-1-50afd02b5bbb
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
MQTT.js 3.0.0リリース。
MQTT 5.0をサポート。
アーティクル
Audits in Web Inspector | WebKit
webkit.org/blog/8935/audits-in-web-inspector/
Safariの開発者ツールに追加されたAudit Tabについて。
デフォルトではアクセシビリティについてのAuditが含まれていて、自分でAuditのルールを定義して追加できるようになっている。
例としてESLintを*.js
に対して実行するAuditルールが挙げられている。
An introduction to the MediaRecorder API - Twilio
www.twilio.com/blog/mediastream-recording-api
MediaRecorder APIで音声の録音とダウンロードを行うチュートリアル
ECMAScript proposal updates @ 2019-06 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2019/06/09/ecmascript-proposal-updates
2019年6月のTC39ミーティングでStage変更があったECMAScript Proposalのまとめ。
Dynamic ImportがついにStage 4となった。
Dive into IndexedDB
PromiseベースのIndexedDBラッパーであるidb
を使ったIndexedDBについてのチュートリアル。
データの追加、削除、マイグレーションについて
Enabling Modern JavaScript on npm
jasonformat.com/enabling-modern-js-on-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 Grid Level 2のサブグリッドについて
スライド、動画関係
Inside Frontend #3 - YouTube
www.youtube.com/playlist?list=PLZFhK-XSlb82hef6Sxyqcc-6e8xVTbaIE&app=desktop
Inside Frontend #3 の動画一覧
サイト、サービス、ドキュメント
npmfs - home
npmに公開されているパッケージのソースコードビューアサービス。
特定のバージョンのコードを参照したり、バージョン間のDiffを見られるようになっている。
ソフトウェア、ツール、ライブラリ関係
urql
formidable.com/open-source/urql/
React Hooksに対応したGraphQLを扱うReact向けライブラリ。
Queryの取得状態や取得結果を使ったコンポーネントを扱える
lukeed/tinydate: A tiny (340B) reusable date formatter. Extremely fast!
ファイルサイズが小さなDate Formatterライブラリ。
書籍関係
実践TypeScript ~ BFFとNext.js&Nuxt.jsの型定義~ | 吉井 健文 |本 | 通販 | Amazon
www.amazon.co.jp/dp/483996937X/
2019年6月26日発売
TypeSctiptとNext.js、Nuxt.jsについての書籍