Fork me on GitHub

2016-05-03のJS: Node.js 6.0.0、GitHub Fetch 1.0.0、-webkit- prefixのポリシー

Edit on GitHub 編集履歴を見る

JSer.info #277 - Node v6.0.0がリリースされました。

6.xはlong term support (LTS)となるバージョンなので、LTSではない5.xを使っている人はアップデートが推奨されています。
4.xはLTSなので、2017年4月までサポートされます。

6.0.0ではNode v5.10.0にもバックポートされたBuffer APIの変更や、
V8 5.0へのアップデートにより、ES6の93%(Moduleを除く)が利用できるようになっています。


Fetch APIのpolyfillであるgithub/fetch 1.0.0がリリースされました。

IE9のサポートが終了され、URLSearchParamsのサポートの追加などがされています。


Updating Our Prefixing Policy | WebKitという記事では、WebKit/Safariの実験的prefixに関するポリシーの変更が書かれています。

詳細は以下に書かれていますが、今後は新しい機能を導入する際はChromeやFirefoxのようにランタイムフラグ制に変更されます。

今まで、-webkit- prefixで新機能を導入し、それがあまりにもウェブサイトで使われた結果、ブラウザの実装から-webkit-を無くすとBreak the webとなる問題が多く発生していました。
-webkit-transform-3dのように互換仕様としてウェブ標準に-webkit prefixが存在します。

そのため、ブラウザの設定から有効にしないと新しい機能が利用できないruntime flagsへと変更されました。


ヘッドライン


Node v6.0.0 (Current) | Node.js

nodejs.org/en/blog/release/v6.0.0/

node.js ReleaseNote

Node.js 6.0.0(LTS)リリース。
v8のアップデートを含むため、Native addonはnpm rebuidでの再ビルドが必要。
Buffer APIが新しくなり、古いAPIは非推奨へ、worker.suicideworker.exitedAfterDisconnectに変更、querystring.parse()が返すオブジェクトはObject.prototypeを継承しないようになるなど


Chromium Blog: Chrome 51 Beta: Credential Management API and reducing the overhead of offscreen rendering

blog.chromium.org/2016/04/chrome-51-beta-credential-management.html

Chrome ReleaseNote

Chrome 51 Betaリリース。
Credential Management APIのサポート。
offscreenの場合、crosss originのframeにおいてはrequestAnimationFrame()が呼ばれないように、Intersection Observer 、passiveイベントオプション、V8 5.1へのアップデートなど。


Release v6.8.0 · babel/babel

github.com/babel/babel/releases/tag/v6.8.0

babel ReleaseNote

Babel v6.8.0リリース。
Babel自体がBabel 6でTranspileするようになり、runtimeが5に依存していた問題が修正された


Release Fetch 1.0.0 · github/fetch

github.com/github/fetch/releases/tag/v1.0.0

JavaScript htto library

Fetch APIのpolyfillであるGitHub Fetch 1.0.0リリース。
IE9のサポートを終了、timeoutイベントをハンドルするように、URLSearchParamsのサポートなど


ESLint v2.9.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2016/04/eslint-v2.9.0-released

JavaScript Tools ReleaseNote

ESLint v2.9.0リリース。
Autofix --fix オプションの改善。
今までは一度のパスで適応できないものは諦めていたが、複数回のパスで修正を適応を試みるようになった。


Release SlimerJS 0.10.0 · laurentj/slimerjs

github.com/laurentj/slimerjs/releases/tag/0.10.0

firefox ReleaseNote

Firefox版のPhantomJS APIの互換実装であるSlimerJS 0.10.0リリース。


Release Notes for Safari Technology Preview 3 | WebKit

webkit.org/blog/6143/release-notes-for-safari-technology-preview-3/

safari ReleaseNote

Safari Technology Preview 3リリース。
Symbol.isConcatSpreadableなどのwell-known Symbol実装の追加、
:host()擬似クラス、IndexedDBがBlobをサポート、Crypto、CSP周りの仕様準拠度の向上など


アーティクル


Scroll-linked effects - Mozilla | MDN

developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects

JavaScript document

onscrollにhookして同期的に位置を変更する処理に対しては警告メッセージが出るようになった。
その場合の対処法についてのドキュメント


Announcing Vue.js 2.0 — The Vue Point — Medium

medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9

JavaScript DOM library

Vue.js 2.0のパブリックプレビュー版リリース。
SnabbdomベースのVirtua lDOM実装の追加など


Updating Our Prefixing Policy | WebKit

webkit.org/blog/6131/updating-our-prefixing-policy/

webkit safari

Safari/WebKitは新しい機能などは今後Vendor prefixではなく、フラグのON/OFFを追加していくようにするポリシーの変更について。
-webkit- prefixがあまりに使われてしまい、後方互換性のためにprefixが標準仕様となってしまった歴史などもあるため


How to Make Your React Apps 15x Faster – ReactJS News

reactjsnews.com/how-to-make-your-react-apps-10x-faster

React 設定

Reactはデバッグ向けのコードが大量に入っているため、production(NODE_ENV=production)ビルドや機械的に最適化できるBabelプラグインを導入するだけでも速度が大分変わるという話


V8 JavaScript Engine: ES6, ES7, and beyond

v8project.blogspot.com/2016/04/es6-es7-and-beyond.html

ECMAScript V8 JavaScript

V8が既存のウェブとの互換性を持ちつつ次期ECMAScriptの仕様を実装しているかのプロセスについて。
ES6の実装が完了する前にドラフトバージョンを実装することで見つけられる後方互換性の問題がある話。
またECMAScriptという複雑な言語仕様のtest suiteであるtest262について。


npmで同じライブラリの複数バージョンをインストールして使う方法 | Web Scratch

efcl.info/2016/05/02/npm-package-mixed-multiple-versions-demo/

npm Tips node.js JavaScript

一つのプロジェクト内に同名ライブラリの複数バージョンをインストールして扱う方法について


A look at ES6 Maps - Barbarian Meets Coding

www.barbarianmeetscoding.com/blog/2016/04/27/a-look-at-es6-maps

JavaScript ECMAScript

ES6 Mapについての解説。
データ構造としてのMap、Iterableについて


Turbocharged JavaScript refactoring with codemods — Airbnb Engineering & Data Science — Medium

medium.com/airbnb-engineering/turbocharged-javascript-refactoring-with-codemods-b0cae8b326b9

JavaScript Tools

codemodを使ったリファクタリングについて


スライド、動画関係


Almin.js | JavaScriptアーキテクチャ

azu.github.io/slide/2016/child_process_sushi/almin-javascript-architecture.html

JavaScript スライド

Almin.jsの設計の概念的な話やパターンについて。
FluxやCQRSといったパターンにおいて、ドメインモデルをどうやったら考えて実装できるようになるかという話。


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


Diffee Checker

una.im/diffee/

CSS

CSS blend modesを使いiframe同士の描画結果の差分を表示するデモ


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


Galooshi/import-js: A tool to simplify importing JS modules

github.com/Galooshi/import-js

JavaScript Tools editor

指定した関数名から、該当するモジュールのimport文を自動的に探索して追加できるツール。
各種エディタ連携などもある


ericholiveira/studio: A nodejs framework to create decoupled and scalable applications

github.com/ericholiveira/studio

node.js

ActorモデルインスパイアなNode.jsのフレームワーク


flickr/yakbak: Record and playback HTTP responses

github.com/flickr/yakbak

node.js HTTP testing library

ProxyとしてHTTPリクエストとレスポンスを記録し、リプレイしたレスポンスを返すことができるNode.jsライブラリ


jeromeetienne/babel-plugin-jsdoced: babel plugin which use jsdoc to implement strong typing in javascript

github.com/jeromeetienne/babel-plugin-jsdoced

babel JSDoc plugin

jsdoced.jsを使いJSDocからランタイムassertを追加するBabelプラグイン。
jsdoc-to-assertと似てるが、返り値のチェックやProxy APIを使ってプロパティの代入もチェックしている


この記事へ修正リクエストをする
記事を紹介する