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 init
でcreate-react-app
のようなパッケージを元にしたセットアップができるようになっています。
また、セキュリティチェックができるnpm-auditコマンドの追加されています。
またNode.js 4のサポート終了、npm update
とnpm 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を削除などの変更が行われています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
npm/CHANGELOG.md at v6.0.0 · npm/npm
github.com/npm/npm/blob/v6.0.0/CHANGELOG.md
npm 6.0.0リリース。
npm init
でcreate-react-app
のようなパッケージを元に初期化できるように、npm audit
の追加。
Node.js 4のサポート終了、npm update
とnpm outdated
の探索アルゴリズムの変更など
rxjs/CHANGELOG.md at 6.0.0 · ReactiveX/rxjs
github.com/ReactiveX/rxjs/blob/6.0.0/CHANGELOG.md
RxJS 6.0リリース
Node v10.0.0 (Current) | Node.js
nodejs.org/en/blog/release/v10.0.0/
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/
CKEditor 5 v10.0.0リリース。
contentEditable
ベースではなく、DOM構造をオブジェクトモデルで表現するように、プラグインベースなアーキテクチャに変更。
ライセンスがGPL+LGPL+MPLのトリプルライセンスからGPL 2+のみに変更。
API documentation - Sinon.JS
SinonJS 5.0.1リリース。
sinon.replace
やsinon.fake
の追加、sinon
オブジェクトがデフォルトでsandboxに変更、ES5をサポートしてない実行環境はshimが必要になるなど
- sinon/History.md at master · sinonjs/sinon
- New API: default sandbox and fake by mroderick · Pull Request #1586 · sinonjs/sinon
Release electron v2.0.0 · electron/electron
github.com/electron/electron/releases/tag/v2.0.0
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 67βリリース。
Generic Sensor API、WebXR Device APIのorigin trialの開始。
BigIntの実装、TransformStreamの実装、Client HintのAccept-CH-Lifetime
の対応など
- Chrome Platform Status
- Accept-CH-Lifetime support for requesting client hints - Chrome Platform Status
アーティクル
last 2 versions" considered harmful
autoprefixerなどで使われるbrowserlistのlast 2 versions
指定では、シェアが0%のブラウザも"最新の2バージョン"に含まれてしまう問題について。
日経電子版を支える広告技術 — HACK The Nikkei
hack.nikkei.com/blog/tech_book_fest04_ds_ad_tech/
ウェブサイトのパフォーマンスを劣化させる広告(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の開発者ツールをベースにした単体のデバッグアプリについて。
EDP(Edge DevTools Protocol)を使ってブラウザの外部からデバッグができる。
A Vue.js App Using Axios With Vuex
www.thepolyglotdeveloper.com/2018/04/vuejs-app-using-axios-vuex/
Vue、Vuex、Vue Routerを使ったアプリを作るチュートリアル。
Visualizing Layers in Web Inspector | WebKit
webkit.org/blog/8262/visualizing-layers-in-web-inspector/
SafariのTechnology PreviewにLayer タブが追加された。
ページのレイヤー構造を可視化できるデバッグツール。
Compositionの問題やコストが高いレイヤーを見つけることができる。
BigInt: arbitrary-precision integers in JavaScript | Web | Google Developers
developers.google.com/web/updates/2018/05/bigint
Chrome 67で実装されたBitInt
についての解説。
Number
とは異なり任意精度の整数を扱える新しいプリミティブ値。
リテラル表現、typeofの結果、演算子での動き、BigIntとNumberでの演算はTypeError
になる点などについて
スライド、動画関係
祝Node-v10リリース これまでのNodeの振り返り // Speaker Deck
speakerdeck.com/shigeki/zhu-node-v10ririsu-koremadefalsenodefalsezhen-rifan-ri
Node.js 10での変更点についてのスライド。
V8の更新。for await...of
とStreamの対応、Error.code
の変更、EventEmitter#off
の追加、fs/promises
の追加、assert.strict
の追加など
サイト、サービス、ドキュメント
TypeScript playground
agentcooper.github.io/typescript-play/
TypeScript playgroundツール。
公式のものに比べてTypeScriptのバージョンが選択でき、オプションも詳細に設定できるなどの違いがある。
また、入力毎に共有しやすいパーマネントURLを更新してくれる。
BundlePhobia | cost of adding a npm package
package.jsonをアップロードすると依存してるモジュールのファイルサイズ(gzip)などを一覧表示してくれるサービス
linkedin/css-blocks: High performance, maintainable stylesheets.
github.com/linkedin/css-blocks
CSSのサブセットとして動くCSS in JSのライブラリとツール。
コンポーネントと紐付けることで、CSSのクラス名なども圧縮や不要なコードを削除などの最適化ができる
ソフトウェア、ツール、ライブラリ関係
jhiesey/stream-http: Streaming node http in the browser
github.com/jhiesey/stream-http
Fetch with streamなどを使ったStream取得HTTPライブラリ。
非対応のブラウザでは擬似的なStreamを作る
xx45/dayjs: ⏰Fast 2KB immutable date library alternative to Moment.js with the same modern API
ファイルサイズの小さな日付操作ライブラリ。
moment.jsの一部と似たAPIを持ち、Immutableなライブラリ。
書籍関係
Hands on Next.js by Christian Nwamba [Leanpub PDF/iPad/Kindle]
Next.jsについての書籍