O hirunewani blog

Frontend Weekly 2025-01-10

Created at

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に特定の命名パターンで記述されるpreparepostinstallなどのスクリプトであり、特定の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

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

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