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 に特定の命名パターンで記述されるpreparepostinstallなどのスクリプトであり、特定の script やイベントにフックして自動的に実行されるもので、これを悪用するとユーザーの意図しないコードを実行することが出来る。

特定の依存関係の lifecycle scripts を実行するには、次のようにホワイトリスト形式で設定する必要がある。

{
"pnpm": {
"onlyBuiltDependencies": ["fsevents"]
}
}

packageManager による自己バージョン管理#

次のように package.json のpackageManegerフィールドに利用したい pnpm のバージョンを指定することで pnpm のバージョンを自動で管理する機能がデフォルトで有効化された。

{
"engines": {
"node": "^20.0.0"
},
"packageManager": "[email protected]"
}

この変更により pnpm では、この機能のフラグであったmanage-package-manager-versionsを有効化する必要も、packageManagerを元々利用していた Corepack を有効化することもなく、自動でバージョンを切り替えることが可能になった。

依存関係の検証または自動インストール#

verify-deps-before-runフラグを有効化することで、依存関係の検証を行うことが出来る。

次のように.npmrcへ記述することで、有効化することが出来る。

Terminal window
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

現在は問題が特定され、修正方法が提供されている。

https://github.com/docker/for-mac/issues/7527