Fork me on GitHub

2018-05-02のJS: Node.js 10.0.0、npm 6.0.0、Electron 2.0.0

Edit on GitHub 編集履歴を見る

JSer.info #381 - Node.js 10.0.0がリリースされました。

10.xは2018年10月にLTSとなる予定です。
また、Node.js 4.xのLTSは2018年4月30日で切れ、Node.js 6.xもMaintenanceモードに切り替わっています。

Node.js API (N-API)がstableとなり、ネイティブアドオンを実装するときにV8のAPIに依存しないで実装できるようになっています。
これに合わせてChakraCoreを使ったnode-chakracore-v10.0.0がプレリリースとなっています。
Assertの変更、V8 6.6への更新、fs.promisesの追加、URLがグローバルへ追加など様々な変更が入っています。

詳しくはリリースノートや次の記事を参照してください。


npm 6が正式リリースされました。

yarn createと同じようにnpm initcreate-react-appのようなパッケージを元にしたセットアップができるようになっています。
また、セキュリティチェックができるnpm-auditコマンドの追加されています。
またNode.js 4のサポート終了、npm updatenpm outdatedの挙動をnpm installと同様のバージョン探索方法に変更などが行われています。


Electron 2.0.0がリリースされています。

依存するモジュールがそれぞれ更新されています。

  • Chrome: 59.0.3071.115 -> 61.0.3163.10
  • Node.js: 8.2.1 -> 8.9.3
  • V8: 5.9.211.38 -> 6.1.534.41

またmenu.popupのシグネチャーの変更、deprecatedなAPIを削除などの変更が行われています。


ヘッドライン


npm/CHANGELOG.md at v6.0.0 · npm/npm

github.com/npm/npm/blob/v6.0.0/CHANGELOG.md

npm ReleaseNote

npm 6.0.0リリース。
npm initcreate-react-appのようなパッケージを元に初期化できるように、npm auditの追加。
Node.js 4のサポート終了、npm updatenpm outdatedの探索アルゴリズムの変更など


rxjs/CHANGELOG.md at 6.0.0 · ReactiveX/rxjs

github.com/ReactiveX/rxjs/blob/6.0.0/CHANGELOG.md

Rx JavaScript library ReleaseNote

RxJS 6.0リリース


Node v10.0.0 (Current) | Node.js

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

node.js ReleaseNote

Node.js 10.0.0リリース。
10.xは2018年10月にLTSとなる予定。同時にNode-ChakraCoreのプレリリース。
N-APIがstableに、Assertの変更、V8 6.6への更新、fs.promisesの追加、URLがグローバルへ追加など


CKEditor 5 v10.0.0 – the future of rich text editing looks stable

ckeditor.com/blog/CKEditor-5-v10.0.0-the-future-of-rich-text-editing-looks-stable/

editor JavaScript library ReleaseNote

CKEditor 5 v10.0.0リリース。
contentEditableベースではなく、DOM構造をオブジェクトモデルで表現するように、プラグインベースなアーキテクチャに変更。
ライセンスがGPL+LGPL+MPLのトリプルライセンスからGPL 2+のみに変更。


API documentation - Sinon.JS

sinonjs.org/releases/v5.0.1/

JavaScript testing library ReleaseNote

SinonJS 5.0.1リリース。
sinon.replacesinon.fakeの追加、sinonオブジェクトがデフォルトでsandboxに変更、ES5をサポートしてない実行環境はshimが必要になるなど


Release electron v2.0.0 · electron/electron

github.com/electron/electron/releases/tag/v2.0.0

Electron ReleaseNote

Electron 2.0.0リリース。
Chrome 61、Node.js 8.9、V8 6.1への更新。
menu.popupのシグネチャーの変更、deprecatedなAPIを削除など


Chromium Blog: Chrome 67 Beta: WebXR Origin Trial, Generic Sensors

blog.chromium.org/2018/04/chrome-67-beta-webxr-origin-trial.html

Chrome ReleaseNote

Chrome 67βリリース。
Generic Sensor API、WebXR Device APIのorigin trialの開始。
BigIntの実装、TransformStreamの実装、Client HintのAccept-CH-Lifetimeの対応など


アーティクル


last 2 versions" considered harmful

jamie.build/last-2-versions

article browser Tools

autoprefixerなどで使われるbrowserlistのlast 2 versions指定では、シェアが0%のブラウザも"最新の2バージョン"に含まれてしまう問題について。


日経電子版を支える広告技術 — HACK The Nikkei

hack.nikkei.com/blog/tech_book_fest04_ds_ad_tech/

JavaScript article 広告

ウェブサイトのパフォーマンスを劣化させる広告(SDK)とその対策について。 無駄なRTTの削減、ファイルサイズの削減。 メインスレッドで同期処理されるdocument.write()対策としてShadow DOMやiframeでの実行やIntersection Observerでの遅延ロードについて。


Introducing the Microsoft Edge DevTools Preview app - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog

blogs.windows.com/msedgedev/2018/04/25/introducing-the-microsoft-edge-devtools-preview-app/

MSEdge debug Tools article

MSEdgeの開発者ツールをベースにした単体のデバッグアプリについて。
EDP(Edge DevTools Protocol)を使ってブラウザの外部からデバッグができる。


A Vue.js App Using Axios With Vuex

www.thepolyglotdeveloper.com/2018/04/vuejs-app-using-axios-vuex/

Vue article tutorial

Vue、Vuex、Vue Routerを使ったアプリを作るチュートリアル。


Visualizing Layers in Web Inspector | WebKit

webkit.org/blog/8262/visualizing-layers-in-web-inspector/

safari debug article

SafariのTechnology PreviewにLayer タブが追加された。
ページのレイヤー構造を可視化できるデバッグツール。
Compositionの問題やコストが高いレイヤーを見つけることができる。


BigInt: arbitrary-precision integers in JavaScript  |  Web  |  Google Developers

developers.google.com/web/updates/2018/05/bigint

Chrome JavaScript ECMAScript article

Chrome 67で実装されたBitIntについての解説。
Numberとは異なり任意精度の整数を扱える新しいプリミティブ値。
リテラル表現、typeofの結果、演算子での動き、BigIntとNumberでの演算はTypeErrorになる点などについて


スライド、動画関係


祝Node-v10リリース これまでのNodeの振り返り // Speaker Deck

speakerdeck.com/shigeki/zhu-node-v10ririsu-koremadefalsenodefalsezhen-rifan-ri

node.js slide

Node.js 10での変更点についてのスライド。
V8の更新。for await...ofとStreamの対応、Error.codeの変更、EventEmitter#offの追加、fs/promisesの追加、assert.strictの追加など


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


TypeScript playground

agentcooper.github.io/typescript-play/

TypeScript webservice Tools editor

TypeScript playgroundツール。
公式のものに比べてTypeScriptのバージョンが選択でき、オプションも詳細に設定できるなどの違いがある。
また、入力毎に共有しやすいパーマネントURLを更新してくれる。


BundlePhobia | cost of adding a npm package

bundlephobia.com/scan

webservice npm browser

package.jsonをアップロードすると依存してるモジュールのファイルサイズ(gzip)などを一覧表示してくれるサービス


linkedin/css-blocks: High performance, maintainable stylesheets.

github.com/linkedin/css-blocks

CSS library

CSSのサブセットとして動くCSS in JSのライブラリとツール。
コンポーネントと紐付けることで、CSSのクラス名なども圧縮や不要なコードを削除などの最適化ができる


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


jhiesey/stream-http: Streaming node http in the browser

github.com/jhiesey/stream-http

HTTP Fetch library

Fetch with streamなどを使ったStream取得HTTPライブラリ。
非対応のブラウザでは擬似的なStreamを作る


xx45/dayjs: ⏰Fast 2KB immutable date library alternative to Moment.js with the same modern API

github.com/xx45/dayjs

JavaScript library

ファイルサイズの小さな日付操作ライブラリ。
moment.jsの一部と似たAPIを持ち、Immutableなライブラリ。


書籍関係


Hands on Next.js by Christian Nwamba [Leanpub PDF/iPad/Kindle]

leanpub.com/hands-on-nextjs

server book React

Next.jsについての書籍


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