Fork me on GitHub

2019-01-01のJS: WebdriverIO v5、Rollup 1.0、Rust + WebAssembly + WebWorker

Edit on GitHub 編集履歴を見る

JSer.info #416 - WebDriverを扱うテストフレームワークであるWebdriverIO v5がリリースされました。

パッケージ構造やAPI周りの変更が行われています。

基本的なパッケージが@wdioに移動され、同梱されていたCLIが@wdio/cliに移動しています。

API周りではコマンドがselectorを受け取らないようになり、メソッドチェーンではなくasync/awaitベースに変更されています。

// v4ではセレクタを渡せた
browser.click('#elem')
// v5からはelementを取得してから操作する
const elem = $('#elem')
elem.click()

その他にもisVisibleisDisplayedにリネームされるなど多くのコマンドのリネームが行われています。
詳しくはCHANGELOG.mdに掲載されています。


モジュールBundlerであるRollup v1.0.0がリリースされました。

破壊的な変更として、非推奨となっていたオプションやオプションのリネームが含まれています。
bundle.generatebundle.writeの返す値のフォーマットの変更、acorn@6へアップデートなどが行われています。


Comlink + Rust で言語とスレッドの垣根を越えた WebAssembly 開発 - Qiitaという記事では、Zip展開アプリの例にしたRustとWebAssemblyを使った開発について書かれています。

Rustやwasm-packを使った開発環境の設定から、wasm-bindgenでRustとJavaScriptのバインディングの作成、webpackでの読み込みとブラウザでの実行についてまで書かれています。
また、メインスレッドで重たい処理を行うのを避けるために、WebAssemblyの処理をWebWorker上で行い、そのメッセージのやり取りにComlinkを使う方法などについても紹介されています。


ヘッドライン


WebdriverIO v5 Released · WebdriverIO

webdriver.io/blog/2018/12/19/webdriverio-v5-released.html

Selenium browser testing library ReleaseNote

WebdriverIO v5リリース。
wdio CLIは@wdio/cliに移動、コマンドがselectorを受け取らないように、メソッドチェーンではなくasync/awaitベースに変更。
その他にもコマンドのリネームなどの破壊的な変更を多く含む


Release v1.0.0 · rollup/rollup

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

JavaScript bundler ReleaseNote

Rollup 1.0.0リリース。
破壊的な変更としてオプションのリネーム、bundle.generateの返す値のフォーマットの変更、acorn@6へアップデートなど


アーティクル


「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ - エンジニアHub|若手Webエンジニアのキャリアを考える!

employment.en-japan.com/engineerhub/entry/2018/12/26/103000

GraphQL tutorial article

GraphQLの入門記事。
GraphQLの利点、欠点、スキーマ/クエリの書き方、VariableやFragmentの使い方について。
またRelayの拡張や実際にGraphQLを使った実装例についてなど


Understanding Throttling and Debouncing – Bits and Pieces

blog.bitsrc.io/understanding-throttling-and-debouncing-973131c1ba07

JavaScript article

ThrottlingとDebouncingについてそれぞれを実装しながら挙動を理解していく記事


qiita.com/3846masa/items/92d24e16ebb5151b08ba

WebAssembly webworker Rust article

Rustを使ったWebAssemblyライブラリの開発について。
Rustを使ったwasmのバインディングの作成、webpackを使ったロード方法について。
また、処理をメインスレッド外のWebWorkerで行いComlinkでのデータのやり取りする方法について


Babel 7 の主な変更点まとめ - Qiita

qiita.com/soarflat/items/21b8955f992bf7d38581

babel article

Babel 7の主な変更点やマイグレーション方法について


基礎からはじめるReact Native入門連載一覧:CodeZine(コードジン)

codezine.jp/article/corner/772

React iOS Android tutorial

React Nativeについての連載記事。


ECMAScript modules in Node.js: the new plan

2ality.com/2018/12/nodejs-esm-phases.html

node.js article module

Node.jsにおけるES Modulesの扱いについてのまとめ記事。
.mjsのサポートについてやCommonJSとの相互運用性の問題、今後どのような方針が予定されているのかについて


JavaScriptとWeb開発に関するInfoQトレンドレポート

www.infoq.com/jp/articles/javascript-web-development-trends

JavaScript article

InfoQのJavaScriptに関するトレンドレポート。
イノベーター、アーリーアダプター、アーリーマジョリティ、レイトマジョリティ、ラガードに分けて関連するライブラリ/フレームワーク/ツールについて紹介している。


TypeScriptで実現する型安全な多言語対応(Angularを例に) | 株式会社カブク

www.kabuku.co.jp/software_engineer/typescript-angular-i18n/

Angular i18n TypeScript article

翻訳ファイルをTypeScriptのコードとして表現することで型安全な翻訳定義を作成する方法について。
翻訳ファイルをコードにするメリットとデメリットについてなど


takefumi-yoshii/react-hooks-ogiri: Advent calendar of 2018. This is a showreel using a reaction hook.

github.com/takefumi-yoshii/react-hooks-ogiri

React example document

React Hooks APIを使ったUIコンポーネントのサンプル実装集


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


FontoXML/fontoxpath: A minimalistic XPath 3.1 implementation in pure JavaScript

github.com/FontoXML/fontoxpath

JavaScript xpath library

XPath 3.1、XQuery 3.1の実装ライブラリ


jsincss | A JS-in-CSS stylesheet loader

jsincss.com/

JavaScript CSS library

JavaScriptからテンプレートでCSSを生成でき、イベントによってリアクティブにCSSを変更できるライブラリ。
プラグインで拡張できるようになっている。


BabelEdit - Editor for JSON translation files for Angular & React

www.codeandweb.com/babeledit

i18n React Angular software

JSONベースの翻訳ファイルエディタ。
AngularやReactとの連携としたワークフローが紹介されている


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