Fork me on GitHub

2019-09-03のJS: TypeScript 3.6、Feathers 4(Node.jsフレームワーク)、ES ModulesをProductionで使う方法

Edit on GitHub 編集履歴を見る

JSer.info #451 - TypeScript 3.6が正式にリリースされました。

基本的にはβ、RCからの大きな変更はありませんが、Generatorsの型チェック改善、--downlevelIterationフラグでArray Spreadの仕様に合わせた変換の改善、Promiseの型エラーの改善ながお行われています。
破壊的な変更としてはlib.dom.d.tsglobalThisに関する変更、GlobalFetchの削除、experimental-webglが削除されwebglwebgl2を使うように変更なども行われています。

また、TypeScript playgroundhttps://typescript-play.js.org/ ベースのものに刷新され、
TypeScriptのオプションなど細かい指定ができるようになっています。


リアルタイムアプリやREST API向けのNode.jsフレームワークであるFeathers 4がリリースされています。

コアライブラリがTypeScriptで書き直され型定義ファイルを同梱するようになっています。
また認証の仕組み(Authentication)を作り直したことで、互換性がない変更も含まれています。具体的には次のIssueにまとめられています。

また、認証周りの仕組みの変更に伴うマイグレーションガイドも公開されています。


Using Native JavaScript Modules in Production Today — Philip Waltonという記事では、ブラウザでES Modulesそのものを読み込んで使うための方法について紹介されています。

RollupをつかってnpmモジュールごとにES moduleのchunkを作成し、<script module>でのロード、modulepreloadでのpreloadについて。
また、Dynamic Importでの動的ロードとpolyfill、ES moduleをサポートしてない環境への<script nonmodule>での読み込みについてなどについて書かれています。

デモアプリも公開されているので、興味がある人は読んでみるとよさそうです。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Announcing TypeScript 3.6 | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-3-6/

TypeScript ReleaseNote

TypeScript 3.6リリース。
Generatorsの型チェック改善、--downlevelIterationフラグでArray Spreadの仕様に合わせた変換の改善、Promiseの型エラーの改善。 --target es2015でUnicodeの変数名をサポート、Ambient ClassesとFunctionがマージできるようになるなど。
また、Playgroundが https://typescript-play.js.org ベースに更新されるなど


Dojo

dojo.io/blog/version-6-dojo

JavaScript library ReleaseNote

Dojo 6リリース。


ESLint v6.3.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2019/08/eslint-v6.3.0-released

ESLint ReleaseNote

ESLint v6.3.0リリース。
eslint --initでTypeScriptの設定のサポート、設定ファイルにreportUnusedDisableDirectivesを指定できるように


Introducing Feathers 4: A framework for real-time apps and REST APIs

blog.feathersjs.com/introducing-feathers-4-a-framework-for-real-time-apps-and-rest-apis-afff3819055b

node.js ReleaseNote library

Node.jsフレームワークのFeathers 4リリース。
コアライブラリがTypeScriptで書き直され型定義ファイルを同梱するように、認証の仕組みを作り直しプラグインで拡張できるようになるなど。
認証周りの仕組みの変更に伴うマイグレーションガイドも公開されている。


Release 6.0.0 · systemjs/systemjs

github.com/systemjs/systemjs/releases/tag/6.0.0

JavaScript library module ReleaseNote

systemjs 6.0.0 リリース。
System.onloadのhookを追加、systemjs-importmapでのImportMap定義の合成をサポート、System.resolveが同期処理に変更など


アーティクル


Using Native JavaScript Modules in Production Today — Philip Walton

philipwalton.com/articles/using-native-javascript-modules-in-production-today/

JavaScript module article

ES moduleをそのまま使うためのテクニックについての話。
RollupをつかってnpmモジュールごとにES moduleのchunkを作成し、<script module>でのロード、modulepreloadでのpreload。
Dynamic Importでの動的ロードとpolyfill、ES moduleをサポートしてない環境への<script nonmodule>での読み込みについてなど。


Optional chaining · V8

v8.dev/features/optional-chaining

ECMAScript article JavaScript

ECMAScript Proposal Stage 3であるOptional Chain(?.)とnullish coalescing ?? operatorについて。
lodash.getをどのように置き換えられるかの例など


MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを書いた | Web Scratch

efcl.info/2019/09/02/power-doctest-markdown-asciidoc/

JavaScript testing document article node.js

MarkdownやAsciidocのコードブロック内のJavaScriptコードをdoctestするツールやライブラリについて。
コメントで式の期待する評価結果を書くと、assertに変換してテストできる。


Creating an Object Validator in JavaScript the Test-Driven Development Way | Nick Scialli

nick.scialli.me/creating-an-object-validator-the-tdd-way/

JavaScript testing article

オブジェクトのvalidatorをTDDで実装していく話。
テスト、実装、リファクタリングの流れについて


The Baseline Interpreter: a faster JS interpreter in Firefox 70 - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2019/08/the-baseline-interpreter-a-faster-js-interpreter-in-firefox-70/

Firefox JavaScript

Firefox 70に入るJavaScriptのBaseline Interpreterについて。
既存のベースラインJITのコードと上手く共有し、jitScriptと呼ばれる新しくバイトコードインタプリタを追加することでパフォーマンスの改善につながったという話


スライド、動画関係


現代フロントエンドに欠かせないwebpackとBabelを理解しよう - Speaker Deck

speakerdeck.com/mukai21/xian-dai-hurontoendoniqian-kasenaiwebpacktobabelwoli-jie-siyou

babel webpack slide

Babelやwebpackが何をやっているのかについてのスライド。
Babelがどのようにコードを変換しているのかやwebpackがどのようにモジュールを扱っているのかについて


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


Using with puppeteer · Jest

jestjs.io/docs/puppeteer

JavaScript Chrome testing document

Jest内でpuppeteerを使う方法についてのドキュメント


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


finom/check-imports: Check imports in JS files and update package.json dependencies

github.com/finom/check-imports

JavaScript Tools

コードに書かれているimport文やrequire関数などを分析して、package.jsonの依存関係を更新するツール


antoinechalifour/memento: Memento is a development-only tool that caches HTTP calls once they have been executed.

github.com/antoinechalifour/memento

node.js JavaScript Tools

開発時にAPIへのリクエストをキャッシュして、モックサーバとして利用できるようにするツール。


CONNECT-platform/connective: agent-based reactive programming library for typescript

github.com/connect-platform/connective

JavaScript library TypeScript

RxJSを使って作られたデータコントールフローライブラリ


この記事へ修正リクエストをする
JSer.info Slackに参加する