JSer.info #420 - Node.jsの開発バージョンである11.8.0がリリースされました。
前回の11.7.0に引き続き新しい機能が追加されています。
11.8.0では、ブラウザのSubresource Integrityと同じようなPoliciesという機能がフラグ付きで実装されています。
Policies機能では、読み込むリソース(モジュール)のハッシュ値などを定義したポリシーファイルを事前に作成しておき、実行時にポリシーファイルと照合することで意図せず改ざんされていないかをチェックできます。
- Policies | Node.js v11.8.0 Documentation
- Integrity checks via policy by bmeck · Pull Request #23834 · nodejs/node
- Subresource Integrity | MDN
- Subresource Integrityの解説
Policiesのドキュメントでは、ファイルのハッシュ値を定義するpolicy.json
の作成方法やポリシーファイル自体を書き換えできないように運用する方法についてなどが書かれています。
また、11.8.0では今まで外部モジュールとして開発されていたnode-reportがコアに取り込まれています。
現在はフラグ付きの実装となっており、エラーが発生した際に詳細な情報をJSONで出力できます。
Vue.jsを使ったフレームワークであるNuxt.js 2.4.0がリリースされています。
2.4からバージョンのリリース方針が明確に定義されています。
- minorは4週ごと
- majorは6ヶ月ごと
- majorバージョンがEOLとなるのは1年と2週間後
2.4ではnuxt-ts
によるTypeScriptサポートが行われています。
またstore/
がHMRに対応、<nuxt-link>
がviewport内のprefetchをデフォルトで行うように、bin
スクリプトの対応、SSR bundleのファイルサイズ改善などが行われています。
Yarn's Future - v2 and beyond · Issue #6953 · yarnpkg/yarnでは、Yarn v2で予定されている変更などのロードマップが公開されています。
lockファイルがYAMLのサブセットとなるようにフォーマット変更、PnPを新規インストール時にデフォルト化、コードベースをTypeScriptでの書き直し、プラグインのサポート、ワークスペース対応の改善、yarn constraints
の追加などが予定されています。
2月ごろにv2を新規リポジトリで公開する予定とのことです。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Announcing TypeScript 3.3 RC | TypeScript
blogs.msdn.microsoft.com/typescript/2019/01/23/announcing-typescript-3-3-rc/
TypeScript 3.3 RCリリース。
関数呼び出しにおけるUnion Typesの扱いを改善、--build --watch
でのインクリメンタルビルドを改善しビルド時間の改善など
GitLab NPM Registry | GitLab
docs.gitlab.com/ee/user/project/packages/npm_registry.html
GitLab Premiumがnpm registryをサポート
Release v4.0.0 · karma-runner/karma
github.com/karma-runner/karma/releases/tag/v4.0.0
Karma v4.0.0リリース。
コードベースでネイティブのasync/awaitを利用するために、Node 6のサポートを終了など
Release v1.0.0 · redux-saga/redux-saga
github.com/redux-saga/redux-saga/releases/tag/v1.0.0
redux-saga v1.0.0リリース。
破壊的な変更としてDeprecatedなAPIを削除、APIのデフォルト値の変更やオプションの変更など。
また、babel-plugin-redux-saga
でスタックトレースの改善や不適切な使い方に対する警告表示の追加など
Release Notes for Safari Technology Preview 74 | WebKit
webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
Safari Technology Preview 74リリース。
Fetch APIでabortするためのAbortController
のサポート、Visual Viewport APIの有効化、U2F HID Authenticationのサポートなど
Yarn's Future - v2 and beyond · Issue #6953 · yarnpkg/yarn
github.com/yarnpkg/yarn/issues/6953
Yarn 2.0のロードマップについて。
lockファイルのフォーマット変更、PnPを新規インストール時にデフォルト化、コードベースをTypeScriptでの書き直し、プラグインのサポート、ワークスペース対応の改善、yarn constraints
の追加など
Node v11.8.0 (Current) | Node.js
nodejs.org/en/blog/release/v11.8.0/
Node.js 11.8.0リリース。
Subresource IntegrityのようなPolicy機能が試験的に実装、node-reportモジュールを本体に取り込みprocess.report
を試験的に実装など
- Policies | Node.js v11.8.0 Documentation
- Process | Node.js v11.8.0 Documentation
- nodejs/node-report: Delivers a human-readable diagnostic summary, written to file.
Jest 24: 💅 Refreshing, Polished, TypeScript-friendly · Jest
jestjs.io/blog/2019/01/25/jest-24-refreshing-polished-typescript-friendly
Jest 24リリース。
@babel/preset-typescript
を使ってTypeScriptをサポート、test.todo
の追加、エラー表示の改善など
Introducing Ionic 4: Ionic for Everyone | The Ionic Blog
blog.ionicframework.com/introducing-ionic-4-ionic-for-everyone/
Ionic 4リリース。
Angular以外のフレームワークとしてReactとVueをサポート
Release 1.2.0 · avajs/ava
github.com/avajs/ava/releases/tag/v1.2.0
AVA 1.2.0リリース。
テストケースごとにtimeoutを設定できるようになるなど
Release v2.4.0 · nuxt/nuxt.js
github.com/nuxt/nuxt.js/releases/tag/v2.4.0
Nuxt.js 2.4.0リリース。
minor、major、EOLなどのリリース方針の決定。
nuxt-ts
によるTypeScriptサポート、<nuxt-link>
がviewport内のprefetchをデフォルトで行うように、bin
スクリプトの対応など
- Nuxt.js and TypeScript as of Jan 2019 – Hai-iro – Medium
- nuxt.js/RELEASE_PLAN.md at dev · nuxt/nuxt.js
Parsing of `import()` fails in 4.29.0 (Compilation issue, related to dynamic import) · Issue #8656 · webpack/webpack
github.com/webpack/webpack/issues/8656
webpack 4.29.0 + npmでimport()
が失敗する問題について。
npmがacorn + acorn-dynamic-importのpeerDependencyの関係を無視したhoistを行うバグにより、import()
がパースできなくなる。yarnでは発生していない、npmに修正のPull Requestがでている。
アーティクル
What's New In DevTools (Chrome 73) | Web | Google Developers
developers.google.com/web/updates/2019/01/devtools
Chrome 73のDevToolsの更新点について。
Logpointsの追加、コードカバレッジをJSONとして出力できるように、コンソールパネルでキーボードナビゲーションに対応、Geolocationを設定できるようになるなど。
またWebSocketsの"Frames"を"Messages"にリネームなど
lernaでのmonorepoにおけるリリースフロー(Fixed/Independent) | Web Scratch
efcl.info/2019/01/26/monorepo-release-flow/
lernaを使ったmonorepoにおけるパッケージのリリースフローについて。
lernaのmode(Fixed/Independent)のち外、monorepoでのpublishまでの流れ、Yarn Workspacesなどの利用についてなど
サイト、サービス、ドキュメント
ericclemmons/polydev: Faster, route-centric development for Node.js apps with built-in Hot Module Replacement.
github.com/ericclemmons/polydev
Next.jsのようなディレクトリとルーティングの対応構造をもつNode.jsフレームワーク。
リクエストがくるまで必要ないPartは読み込まない、HMRに対応してファイルの変更をすぐに反映するなどイテレーションのしやすさを目的に作られている
nuxt.js/RELEASE_PLAN.md at dev · nuxt/nuxt.js
github.com/nuxt/nuxt.js/blob/dev/RELEASE_PLAN.md
Nuxt.jsのリリース方針について。
minorは4週ごと、majorは6ヶ月ごと、各majorバージョンにセキュリティアップデートがでなくなりEOLとなるのは1年と2週間後となる。
ソフトウェア、ツール、ライブラリ関係
LiquidPlayer/LiquidCore: Node.js virtual machine for Android and iOS
github.com/LiquidPlayer/LiquidCore
AndroidとiOSアプリでNode.jsライムタイムを動かすライブラリ。
iOS向けにはV82JSC(JavaScript Core)のレイヤーを実装している
reduxjs/redux-starter-kit: A simple set of tools to make using Redux easier
github.com/reduxjs/redux-starter-kit
Redux上に作られたフレームワーク。
boilerplate codeを減らし、Reduxにおける一般的なユースケースをサポートするが目的。
immerを組み込んだReducerやActionの作成、selectorのサポートなど。
egoist/import-http: Import modules from URL instead of local node_modules
ブラウザやdenoのようにmoduleをimport m from "https://"
のように指定するためのwebpack, rollupプラグイン。
モジュールのダウンロード、キャッシュ、import先の書き換えを行う。