Fork me on GitHub

2022-02-22のJS: Deno 1.19、Next.js 12.1、Monorepo Toolsまとめ

Edit on GitHub 編集履歴を見る

JSer.info #580 - Deno 1.19がリリースされました。

deno vendorという外部モジュールをリポジトリ管理するためのコマンドが追加されています。
deno vendorは外部モジュールをローカルにインポートし、Import mapsでマッピングして利用できます。

Deno.FileDeno.FsFileにリネームし、Deno.Fileがdeprecatedとなっています。
Deno.Fileは次のメジャーアップデートで削除される予定です。

Deno.FsFileDeno.ConnなどがWeb Streamsに対応、CompressionStream/DecompressionStreamのサポート、console.logが循環参照の表示に対応、Deno.listenがUnix socketsといった変更も含まれています。
また、unstableなAPIとして、Deno.getUidDeno.networkInterfacesの追加なども行われています。


Next.js 12.1がリリースされました。

APIサーバでunstable_revalidateを使ってISRのページをrevalidateできるように、next/jestの追加、SWCの改善とMinifyの対応が追加されています。
また、試験的な機能としてoutputStandaloneオプションでNext.jsをサーバで動かすのに必要なファイルのみを出力できるように、React 18の対応が改善されています。


Monorepo Explainedというサイトではmonorepoと関連するツールについて紹介されています。
Bazel/Gradle/Lage/Lerna/Nx/Rush/Turborepoについてキャッシュや分散タスクなどの各機能について比較しています。
サイトはNarwhal(Nx)の人が中心に作成されています。

同じタイミングでState of JS 2021の結果が公開され、Monorepo Toolsについての項目も増えているので、合わせて見てみるとよいかもしれません。

また、現在メンテナンスが止まっているLernaversion/publish/runコマンドだけを取り出したlerna-liteというツールが公開されています。

元々はLernaがWorkspace管理(依存関係の管理)、タスク管理(パッケージの依存を見てタスクを実行)、Publish管理(バージョンの更新やCHANGELOGの作成、公開)などの機能を持ったツールとしてスタートしています。

Workspace管理は、npm 7+/Yarn/pnpmなどのパッケージマネージャーがworkspaces機能としてサポートし始めました。
タスク管理は、TurborepoやNx(Nxは全部入り)などがより効率的に実行できるツールとして誕生しています。
Publish管理は、まだ成熟したツールは少ないですがchangesets/Ship.js/lerna-lite、パッケージマネージャー自体が持っていることがあります。

アプリケーションとライブラリどちらの場合もMonorepoが広く使われるようになってきたので、
Monorepoに関するツール周りが活発になっています。


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

JSer.info Sponsors

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


ヘッドライン


Release 5.0.0-beta.1 · expressjs/express

github.com/expressjs/express/releases/tag/v5.0.0-beta.1

node.js express library ReleaseNote

Express 5.0.0 beta 1リリース。


The File System Access API with Origin Private File System | WebKit

webkit.org/blog/12257/the-file-system-access-api-with-origin-private-file-system/

safari JavaScript IndexedDB

Safariに実装されたFile System Acccess APIについて。
Originごとに分離されたPrivateなファイルシステムとなっていて、ブラウザ外からはアクセスできない。
File System Access APIの基本的な使い方について


Release v9.4.0 · GoogleChrome/lighthouse

github.com/GoogleChrome/lighthouse/releases/tag/v9.4.0

Chrome performance ReleaseNote

Lighthouse v9.4.0リリース。


Deno 1.19 Release Notes

deno.com/blog/v1.19

deno ReleaseNote

Deno 1.19リリース。
Deno.FileDeno.FsFileにリネームし、Deno.Fileをdeprecatedに変更。
依存関係をリポジトリ内のファイルとして管理するdeno vendorコマンドの追加、Deno.FsFileDeno.ConnなどがWeb Streamsに対応。
CompressionStream/DecompressionStreamのサポート、console.logが循環参照の表示に対応、Deno.listenがUnix socketsに対応など。
また、unstableなAPIとして、Deno.getUidDeno.networkInterfacesの追加など。


Release v1.2.0 · remix-run/remix

github.com/remix-run/remix/releases/tag/v1.2.0

React server library ReleaseNote

Remix v1.2.0リリース。
serverBuildTargetオプションを追加しデプロイターケットごとに最適化した出力となるように、serverオプションでカスタムサーバを指定できるように。
Nodeのビルトインモジュールを使っている場合にshimが入るように、serverDependenciesToBundleでCJS向けの出力する際にESMパッケージをbundleできるようになるなど


Blog - Next.js 12.1 | Next.js

nextjs.org/blog/next-12-1

Next.js ReleaseNote

Next.js 12.1リリース。
APIサーバでunstable_revalidateを使ってISRのページをrevalidateできるように、next/jestの追加、SWCの改善とMinifyの対応。
試験的な機能としてoutputStandaloneオプションでNext.jsをサーバで動かすのに必要なファイルのみを出力できるように、React 18の対応など


Yarn 3.2 🚢🔮 Libc, Yarn Explain, Next Major, ... - DEV Community 👩‍💻👨‍💻

dev.to/arcanis/yarn-32-libc-yarn-explain-next-major--o22

yarn ReleaseNote

Yarn 3.2リリース。
optionalDependencieslibcフィールドの追加、yarn explainコマンドの追加、UIの改善など。
次のメジャーアップデートであるYarn 4.xの変更予定についても書かれている


アーティクル


The State of JS 2021

2021.stateofjs.com/en-US/

JavaScript Survey

State of JS 2021のアンケート結果が公開された。
言語、フレームワーク、ツール、ライブラリを評価するときの基準、リソースなどについてのアンケート結果がまとめられている


textareaをカスタマイズできるReact用のライブラリを作成しました

zenn.dev/inokawa/articles/946ba7be927f44

JavaScript React article

textarea要素に対してオーバーレイする要素をおいて、テキストの装飾やイベントを設定できるReactライブラリについて


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


JS framework for native web components | Minze

minze.dev/

WebComponents library

WebCompoenntsを作成するためのフレームワーク。


jimmywarting/native-file-system-adapter: File system, based on the spec reference implementation

github.com/jimmywarting/native-file-system-adapter/

node.js library polyfill

File System Access APIのpolyfillライブラリ。
対象をアダプタで切り替えることができ、Node.jsやDenoやIndexedDBなどをサポートしている。


ghiscoding/lerna-lite: automate your workspace version & publish by using conventional-changelog-commits

github.com/ghiscoding/lerna-lite

monorepo Tools library

lernaからversion/publish/runコマンドを取り出したfork。


Monorepo Explained

monorepo.tools/

monorepo Tools JavaScript library

monorepoの解説とツールの比較サイト。
Bazel/Gradle/Lage/Lerna/Nx/Rush/Turborepoについてキャッシュや分散タスクなどの各機能について比較している


書籍関係


HTML解体新書-仕様から紐解く本格入門 | 太田 良典, 中村 直樹 |本 | 通販 | Amazon

www.amazon.co.jp/dp/4862465277/

HTML book accessibility

2022年4月15日発売
HTMLやウェブアクセシビリティについての書籍


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