Frontend Weekly 2025-01-10
pnpm v10
pnpm v10 がリリースされた。
https://github.com/pnpm/pnpm/releases/tag/v10.0.0
Lifecycle scripts のデフォルト無効化
pnpm v10 では、lifecycle scripts の実行をデフォルトで無効化する変更が入った。
この変更は、セキュリティ強化を目的としている。Lifecycle scripts とは、packages.json の scripts に特定の命名パターンで記述されるprepareやpostinstallなどのスクリプトであり、特定の script やイベントにフックして自動的に実行されるもので、これを悪用するとユーザーの意図しないコードを実行することが出来る。
特定の依存関係の lifecycle scripts を実行するには、次のようにホワイトリスト形式で設定する必要がある。
{ "pnpm": { "onlyBuiltDependencies": ["fsevents"] }}packageManager による自己バージョン管理
次のように package.json のpackageManegerフィールドに利用したい pnpm のバージョンを指定することで pnpm のバージョンを自動で管理する機能がデフォルトで有効化された。
{ "engines": { "node": "^20.0.0" },}この変更により pnpm では、この機能のフラグであったmanage-package-manager-versionsを有効化する必要も、packageManagerを元々利用していた Corepack を有効化することもなく、自動でバージョンを切り替えることが可能になった。
依存関係の検証または自動インストール
verify-deps-before-runフラグを有効化することで、依存関係の検証を行うことが出来る。
次のように.npmrcへ記述することで、有効化することが出来る。
verify-deps-before-run=installロックファイルとnode_modulesが一致しない場合に、自動的にpnpm installを実行したい場合はinstall、警告を出したい場合はwarn、エラーを出したい場合はerror、実行の確認を求める場合はpromptを指定する。
Firefox 134
Firefox 134 がリリースされた。
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/134
RegExp.escape()やPromise.try()のサポートなどが追加された。
Docker Desktop for Mac unable to start
Docker Desktop for Mac がマルウェアとして検知され起動できない問題が発生していた。
https://www.dockerstatus.com/pages/incident/533c6539221ae15e3f000031/677dd6e2108ba105c8d0258c
現在は問題が特定され、修正方法が提供されている。