JSer.info #397 - webpack 4.0 to 4.16: Did you know? – webpack – Mediumという記事では、webpackのマイナー(4.0 ~ 4.16)の変更に関してまとめて解説されています。
webpack 4ではCommonsChunkPlugin
が削除され、代わりにoptimization.splitChunks
というオプションが追加されています。
その後のマイナーアップデートでもautomaticNameDelimiter
、maxSize
オプションの追加などが行われています。
また、Code Splittingする際にはDynamic Importsに対してimport(/* webpackChunkName: "lodash" */ 'lodash')
のような特殊なコメントでモジュールごとの挙動を指定できるようになっています。
この挙動の指定に関しても、マイナーの変更としてpreloadなどを指定できるwebpackPrefetch
や、そのままimport()
として出力するためのwebpackIgnore
コメントなどが追加されています。
その他にもwebpack 4のマイナーの変更が紹介されているので、興味がある人は見てみると良さそうです。
Puppeteer Recorder - Chrome ウェブストアというChrome拡張が公開されています。
この拡張はSelenium IDEのように、Chromeでの操作を記録し、それを再現するコードをPuppeteer向けのスクリプトとして出力します。
また、Creating a Chrome extension in 2018: The good, the bad and the meh | Checklyという記事では、このChrome拡張に関する解説が行われています。
PuppeteerはHeadless Chromeを扱うHigh LevelなAPIをまとめたライブラリですが、foxrというFirefox(headless)をPuppeteerライクなAPIで操作するライブラリも公開されています。
foxrはまだ開発段階ですが、Puppeteer APIのサブセットとして互換性のあるAPIを提供することを目的としています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release: [email protected] - 📣 announcements - npm forum
npm.community/t/release-npm-6-4-0/1417
npm 6.4.0リリース。
IPv6が使える場合はIPv6を使うように、npm audit
に--audit-level
を追加など
アーティクル
Variable Scope in Modern JavaScript with var, let and const | Andy Carter
andy-carter.com/blog/variable-scope-in-modern-javascript
var
、let
、const
の変数のスコープについて解説している記事。
Better tree shaking with deep scope analysis – webpack – Medium
medium.com/webpack/better-tree-shaking-with-deep-scope-analysis-a0b788c0ce77
webpackのTree Shakingではモジュール間同士の依存に関するDead Code Eliminationに動かないケースがあった。
そのパターンを解決するプラグインとその動作の解説について
- vincentdchan/webpack-deep-scope-analysis-plugin: A webpack plugin for deep scope analysis
- Unexpected code after tree-shake · Issue #6264 · webpack/webpack
webpack 4.0 to 4.16: Did you know? – webpack – Medium
medium.com/webpack/webpack-4-0-to-4-16-did-you-know-71e25a57fa6b
webpack 4以降の変更点について。
optimization
にautomaticNameDelimiter
、maxSize
オプションの追加。
Dynamic Importでpreloadなどを指定できるwebpackPrefetch
や、そのままimport()
として出力するためのwebpackIgnore
コメントのサポートなど。
Scroll to the future — Martian Chronicles, Evil Martians’ team blog
evilmartians.com/chronicles/scroll-to-the-future-modern-javascript-css-scrolling-implementations
ブラウザとスクロールについての歴史や変更についてをまとめた記事。
スクロールバーのOSやブラウザでの表示の違い、Element#scrollIntoView
やCSS scroll-behavior
でのスクロールの挙動。
またstickyやIntersection Observer、overscroll-behavior
プロパティなどについて
Cross-tab Synchronization with the Web Locks API - Blog | SitePen
www.sitepen.com/blog/2018/08/14/cross-tab-synchronization-with-the-web-locks-api/
Web Locks APIを使ったタブ間同士のコミュニケーションについて。
Web Locks APIのユースケースや使い方について
JavaScript engine fundamentals: optimizing prototypes · Mathias Bynens
mathiasbynens.be/notes/prototypes
JavaScriptエンジン(V8)のprototype
の最適化の仕組みについての解説
スライド、動画関係
Tangled World of Web Technology ― Are we safe? - Speaker Deck
speakerdeck.com/lmt_swallow/tangled-world-of-web-technology-are-we-safe
ブラウザでの新しい技術と今まである技術が絡んだ脆弱性についてのスライド。
ReactやVueといったデフォルトエスケープされるライブラリにおいてもXSSは起こるケースがあること。
また、Service WorkerやCSPなど新しい技術と今まである技術が絡み合うことで発生する問題などの紹介。
サイト、サービス、ドキュメント
Puppeteer Recorder - Chrome ウェブストア
chrome.google.com/webstore/detail/puppeteer-recorder/djeegiggegleadkkbgopoonhjimgehda
Chromeの操作を記録してPuppeteerで再生できるスクリプトを出力できるブラウザ拡張。
deepsweet/foxr: 🦊 Node.js API to control Firefox
Firefoxをremote protocol経由で操作するNode.jsライブラリ。
Headlessモードにも対応し、APIはPuppeteerのサブセット互換のものを提供することを目的としている
ソフトウェア、ツール、ライブラリ関係
Angular Console
Angular CLIのUIを提供することを目的にしたアプリ。
Angular CLIでできる操作をGUIから行えるようにすることが目的。
flowchart.js
テキストからSVGのフローチャートを作成するJavaScriptライブラリ。
Tonejs/Tone.js: A Web Audio framework for making interactive music in the browser.
Web Audio APIを使ったインタラクティブミュージックを作成するためのフレームワーク。
Max/MSPインスパイアなシグナルプロセッシング向けの処理やモジュールを提供するのが目的
arguiot/TheoremJS: A Math library for computation in JavaScript
MathやNumber、代数、統計などに関する関数を集めたmathematicalフレームワーク
spencermountain/spacetime: A lightweight javascript timezone library
github.com/spencermountain/spacetime
他のライブラリに依存していないタイムゾーンライブラリ。また、i18n APIには直接依存していない。歴史的なタイムゾーンの扱いを省略することでファイルサイズを小さくしている。
書籍関係
Vue.js入門 基礎から実践アプリケーション開発まで | 川口 和也, 手島 拓也, 野田 陽平, 喜多 啓介, 片山 真也 |本 | 通販 | Amazon
www.amazon.co.jp/dp/4297100916/
2018年9月22日発売
Vue.jsについての書籍
JavaScript Data Structures and Algorithms: An Introduction to Understanding and Implementing Core Data Structure and Algorithm Fundamentals: Sammie Bae: 9781484239872: Amazon.com: Books
2019年3月11日発売
JavaScriptでのデータ構造やアルゴリズムについての書籍
JavaScript逆引きレシピ 第2版 達人が選んだ珠玉の現場ワザ(山田祥寛)|翔泳社の本
www.shoeisha.co.jp/book/detail/9784798157573
2018年10月15日発売
JavaScriptの逆引きリファレンス本