JSer.info #336 - webpack 3がリリースされました。
vote結果で上位にあったScope Hoistingを行うwebpack.optimize.ModuleConcatenationPlugin
プラグインが追加されています。
この機能はRollupと同じようにES moduleのsyntaxで書かれている場合のみに適応されます。
- The cost of small modules | Read the Tea Leaves
- Scope Hoistingはモジュールのinliningとも言われてる
またnode: false
でnode関係の機能をまとめて無効化できるように、Source Map周りの変更などが含まれています。
Redux 3.7.0がリリースされました。
配布するUMD bundleファイルをwebpack2からrollup.jsでビルドしたものへと変更されています。これによりファイルサイズなどが改善されています。
- reactjs - What is flat bundling and why is Rollup better at this than Webpack? - Stack Overflow
- Webpack and Rollup: the same but different – webpack – Medium
JS MythBusters, A JavaScript optimization handbook from a high level point of view.というサイトでは、JavaScriptの最適化について書かれています。
JavaScriptエンジンの実装次第で最適な方法は異なりますが、arguments
についてやタイムスタンプの作り方など一度見てみるといいかもしれません。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Announcing TypeScript 2.4 RC | TypeScript
blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
TypeScript 2.4 RCリリース。
Dynamic import、Promiseなどのgeneric type同士の扱いが厳密に、すべてがオプショナルなI/F(weak types)のチェックを厳密化。
String Enumのサポートなど
- なぜ TypeScript の型システムが健全性を諦めているか - Qiita
- Breaking Changes · Microsoft/TypeScript Wiki
- What's new in TypeScript · Microsoft/TypeScript Wiki
Node v8.1.0 (Current) | Node.js
nodejs.org/en/blog/release/v8.1.0/
Node.js 8.1.0リリース。
npm 5.0.3へアップデート、--inspect=0
でランダムポートができるように。
Firefox — Notes (54.0) — Mozilla
www.mozilla.org/en-US/firefox/54.0/releasenotes/
Firefox 54.0リリース。
マルチプロセス化(e10s)、URL.toJSON
の実装、URLSearchParams
がUSVString
を受け入れるように、event.timeStamp
が高精度に、ホスト名のないURL(http://
のみなど)は不正な値として扱われるように
- Firefox 54 for developers - Mozilla | MDN
- Firefox 54 サイト互換性情報 | Firefox サイト互換性情報
- ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
Chromium Blog: Chrome 60 Beta: Paint Timing API, CSS font-display, and Credential Management API improvements
blog.chromium.org/2017/06/chrome-60-beta-paint-timing-api-css.html
Chrome 60βリリース。
Paint Timing API、CSS font-display、Object rest/spread propertiesのサポート。
また、Payment Request APIをデスクトップ版もサポートするなど
- Leveraging the Performance Metrics that Most Affect User Experience | Web | Google Developers
- WICG/paint-timing: A proposal for a Time To First Paint specification.
Release 4.0.0 / 2017-05-26 · chaijs/chai
github.com/chaijs/chai/releases/tag/4.0.0
Chai 4.0.0リリース。
Node.js 0.12のサポート終了、Map
、Set
の対応、deep
の挙動を変更、ES6 Proxyを使ったundefined safeなチェインの実装など
Release v3.7.0 · reactjs/redux
github.com/reactjs/redux/releases/tag/v3.7.0
Redux 3.7.0リリース。 RollupでbundleしたUMDバンドルを配布するように。 余計な関数コールが減るためファイルサイズなどが改善される。
rxjs/CHANGELOG.md at 6.0.0-alpha.0 · ReactiveX/rxjs
github.com/ReactiveX/rxjs/blob/6.0.0-alpha.0/CHANGELOG.md
RxJS 6.0.0-alpha.0リリース。
find
、buffer
、first
などの変更が含まれる
Release v3.0.0 · webpack/webpack
github.com/webpack/webpack/releases/tag/v3.0.0
webpack 3.0.0リリース。
Scope Hoisting (webpack.optimize.ModuleConcatenationPlugin
)の追加、node: false
でnode関係の機能をまとめて無効化できるように、Source Map周りの変更など
Angular: Angular 4.2 Now Available
angularjs.blogspot.com/2017/06/angular-42-now-available.html
Angular 4.2リリース。
angular.ioのサイトが刷新された。
アーティクル
Auto-Play Policy Changes for macOS | WebKit
webkit.org/blog/7734/auto-play-policy-changes-for-macos/
Mac Safariもmobile safariなどと同様にMediaElementの自動再生がユーザー起因でないといけなくする変更。
play()がPromiseを返し、失敗の場合はrejectされる。 Video/Audio/サイト毎に許可が決まるので、複数の要素を作るのではなく一つのsrcを変更して使うことを推奨してる。
Choo, architecture & performance – Yoshua Wuyts – Medium
medium.com/@yoshuawuyts/choo-architecture-performance-f6f0c44e8a6a
ウェブフロントを作成する小さなフレームワークであるChooのアーキテクチャについての解説。
Chooを構成する小さなライブラリやなぜそれを選択しているかやパフォーマンスについての記事
TypeScript 2.3: Type-Checking JavaScript Files with --checkJs | Marius Schulz
blog.mariusschulz.com/2017/06/16/typescript-2-3-type-checking-javascript-files-with-checkjs
TypeScriptの--checkJs
でのJavaScriptからTypeScriptへのマイグレーション手法について。 ホワイトリスト、ブラックリストそれぞれのアプローチ方法について
スライド、動画関係
Handling Long and Unexpected Content in CSS | CSS-Tricks
css-tricks.com/handling-long-unexpected-content-css/
長いコンテンツ(文章)などによる意図しないはみ出しやレイアウト崩れ、表示被りをどう対処するかについてのパターン
ng-japan 2017 セッション資料の一覧 - Qiita
qiita.com/goto63/items/362cef58e16198e20f56
ng-japan 2017の発表動画、スライドまとめ
Up and running with Preact - Course by @shaneosbourne @eggheadio
egghead.io/courses/up-and-running-with-preact
Preactについてのスクリーンキャスト
サイト、サービス、ドキュメント
JS MythBusters, A JavaScript optimization handbook from a high level point of view.
JavaScriptの最適化ハンドブック。
V8の最適化手法についてやアルゴリズム的な最適化、よくある最適化についての解説などがまとまっている
ソフトウェア、ツール、ライブラリ関係
AmplitudeJS: The HTML Audio Player For The Modern Era
521dimensions.com/open-source/amplitudejs
Web Audio APIを使った依存のない音楽プレイヤーライブラリ。
音楽、プレイリストのデータを設定することで再生プレイヤーを作れる。
Angelmmiguel/svgi: 🔎 The SVG inspection tool
SVG inspectionツール。
25th-floor/spected: Validation library
オブジェクトに対するバリデーションルールを作成して、バリデーションを行うライブラリ