Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 21 commits into from
Feb 22, 2022

Conversation

azu
Copy link
Member

@azu azu commented Feb 22, 2022

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管理は、まだ成熟したツールは少ないですがchangesetslerna-lite、パッケージマネージャー自体が持っていることがあります。

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

@azu azu merged commit 66835a4 into develop Feb 22, 2022
@azu azu deleted the jser-week-580 branch February 22, 2022 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant