Fork me on GitHub

2017-06-05のJS: Node.js 8.0.0、npm canary、Mocha to Jest

Edit on GitHub 編集履歴を見る

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

Node.js 8がLTSとなるのは2017年10月の予定です。

Node.js 8.0.0ではnpm v5.0.0V8 version 5.8が搭載されています。

また、Node.js API (N-API)というネイティブアドオンに対するレイヤーが試験的に追加されています。
これは、VM(V8やChackraCore)に依存しないABIを提供するのが目的で、詳細は次の記事で解説されています。

async_hooks、WHATWG URLを正式サポート、Bufferコンストラクタのzero-filledをデフォルト化、util.promisifyの追加などが行われています。
fsなどのコールバック関数をPromiseとして扱うことができるutil.promisifyについての詳しくは次の記事を参照してください。

デバッグ周りでは、--debugが非推奨となり、--inspectオプションなどでデバッガーを使ったデバッグが推奨されています。

また、Node.jsが生成するErrorに独自のエラーコードが付加されるようになり、AssertionErrorの扱いが少し変わっています。

// assertモジュールによるError
AssertionError [ERR_ASSERTION]: false == true

これにより、AssertionErrorなどに特別な処理をするpower-assertなどが影響を受けていました。


Node.js 8.0.0に同梱されているのはnpm 5.0.0ですが、いくつかの問題やパフォーマンスを改善したnpm 5.0.2がリリースされています。

また、npmのcanary版(早期テスト版)であるnpmcが公開されています。

npm i -g npmc

npmc


Into the Great Unknown — Migrating from Mocha to Jestという記事では、MochaからJestへテストフレームワークを移行する際の話が書かれています。

jest-codemodsなどのマイグレーションツールを使っても自動的に移行できなかった部分をどのように回避していったかなどについて書かれています。


ヘッドライン


Node v8.0.0 (Current) | Node.js

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

node.js ReleaseNote

Node.js 8.0.0リリース。
npm 5.0.0、V8 5.8、N-API(Node.js API)、async_hooks、WHATWG URLを正式サポート、Bufferコンストラクタのzero-filledをデフォルト化、util.promisifyの追加、Node.jsが生成するErrorにcodeがつくように。
また--debugが廃止され--inspectでデバッガーと連携できるようになるなど


npm/CHANGELOG.md at v5.0.1 · npm/npm

github.com/npm/npm/blob/v5.0.1/CHANGELOG.md

npm ReleaseNote

npm 5.0.1リリース。
5.0.0のバグ修正が中心。余計なassertionを削除してインストール速度の改善など


Release Notes for Safari Technology Preview 31 | WebKit

webkit.org/blog/7622/release-notes-for-safari-technology-preview-31/

safari ReleaseNote

Safari Technology Preview Release 31リリース。
preloadastype属性のサポート、Access-Control-Allow-Originのエラーメッセージを改善など


N-API: Next generation Node.js APIs for native modules

medium.com/@nodejs/n-api-next-generation-node-js-apis-for-native-modules-169af5235b06

C++ ChakraCore V8 node.js

Node.js 8.0.0で導入されたN-APIについて。 いままでネイティブモジュールを書く際にNANなどもあったが、それはV8に依存していたためAPI/ABI stabilityに問題があった。 N-APIではABI-stableな中間レイヤーを入れる。これによりNode-ChacraCoreなどでも互換APIが整備されている


Release v5.0.2 · npm/npm

github.com/npm/npm/releases/tag/v5.0.2

ReleaseNote npm

npm 5.0.2リリース。 npm i -g npmcでnpmのcanary版がインストールできるように。 インストールの出力結果の改善など


Announcing Meteor 1.5 – Meteor Blog

blog.meteor.com/announcing-meteor-1-5-b82be66571bb

JavaScript library ree

Meteor 1.5リリース。
Code splitting、Dynamic import、bundle解析ツールの追加など


アーティクル


Introduction to State Management in Angular v2+ – OlricDigital – Medium

medium.com/olricdigital/introduction-to-state-management-in-angular-v2-ef6f5144bade

AngularJS

Angularでのステート管理について。
@ngrx/storeを使ったステート管理の解説


HTTP/2 push is tougher than I thought - JakeArchibald.com

jakearchibald.com/2017/h2-push-tougher-than-i-thought/

HTTP2 browser

HTTP/2 Server Pushに関するブラウザごとの挙動についてのまとめ


Whats new for streams in Node 8 – Calvin Metcalf – Medium

medium.com/@CWMma/whats-new-for-streams-in-node-8-736d431083df

node.js

Node.js 8.0.0でStreamに追加されたdestroyについて


Redux vs MobX: Which Is Best for Your Project? — SitePoint

www.sitepoint.com/redux-vs-mobx-which-is-best/

JavaScript library opinion redux

ReduxとMobXの比較。 それぞれの特徴や書き方の違いなどについて雑感が書かれている


Into the Great Unknown — Migrating from Mocha to Jest

ebaytech.berlin/into-the-great-unknown-migrating-from-mocha-to-jest-3baced083c7e

JavaScript testing article

MochaからJestへテストを移行した話。
codemodを使ったマイグレーション、js以外を読み込んでいた時のhook処理、ESLintの設定など。
また複雑なテストやchaiの拡張を使っている場合に自動で移行できないケースについて


Announcing Storybook 3.0 – Storybook – Medium

medium.com/storybookjs/announcing-storybook-3-0-329748b8f4cd

React library document testing ReleaseNote

Reactのコンポーネント開発環境ツールであるStorybook 3.0リリース。
開発の主体がKadiraからコミュニティへ、webpack 2の対応、スナップショットテストを行うstoryshotsのサポートなど


スライド、動画関係


RailsエンジニアがReactを始めてSSRとReduxとTypeScriptを導入するまで | bitjourney Kibela

bitjourney.kibe.la/shared/entries/5c77844d-9856-4f1c-b689-44b1ee3d450a

React TypeScript rails slide

Railsの環境にReact+Reduxとサーバサイドレンダリングを導入するまでの話。
後からTypeScriptを導入した流れについて。


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


WebAssembly and Friends Roadmap

wasmdash.appspot.com/

Chrome WebAssembly

Chromeのwasm関係のロードマップ


MIL WebDNN

mil-tokyo.github.io/webdnn/

WebAssembly 機械学習

WebGPU、WebAssembly、JavaScriptのFallbackを持ったディープニューラルネットワーク(DNN)の実行環境の実装。
ブラウザ上で高速に処理することが目的。


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


picodom/picodom: 1kb Virtual DOM builder and patch algorithm.

github.com/picodom/picodom

VirtualDOM JavaScript library

小さなVirtual DOM実装ライブラリ


Birdview

achrafkassioui.com/birdview/

JavaScript library

サイト全体を俯瞰する表示に切り替えることができるライブラリ


書籍関係


O'Reilly Japan - サーバーレスシングルページアプリケーション

www.oreilly.co.jp/books/9784873118062/

serverless JavaScript book

2017年06月23日発売
aws lambdaなど使ったサーバレスのSPAについての書籍


基礎からわかる Elm | 鳥居 陽介 |本 | 通販 | Amazon

www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%82%8F%E3%81%8B%E3%82%8B-Elm-%E9%B3%A5%E5%B1%85-%E9%99%BD%E4%BB%8B/dp/4863542224

program book

2017年7月14日発売
Elmについての書籍


Get Programming with JavaScript Next: New features of ECMAScript 2015, 2016, and beyond: J. D. Isaacks: 9781617294204: Amazon.com: Books

www.amazon.com/Get-Programming-JavaScript-Next-ECMAScript/dp/1617294209

JavaScript book

2017年12月30日発売
ES2015以降について扱う書籍


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