Frontend Weekly 2025-01-10
pnpm v10, Firefox 134, Docker Desktop for Macの障害などについて
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"
},
"packageManager": "pnpm@9.7.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
現在は問題が特定され、修正方法が提供されている。