スクリプト
pnpmはpackage.jsonのscriptsフィールドをどのように処理するのでしょうか。
Hidden Scripts#
Added in: v11.0.0
Scripts with names starting with . are hidden. They cannot be run directly via pnpm run and are omitted from the pnpm run listing. Hidden scripts can only be called from other scripts.
{
"scripts": {
".helper": "echo 'I am hidden'",
"build": "pnpm run .helper && tsc"
}
}
In this example, pnpm run .helper would fail, but pnpm run build would succeed because .helper is called from another script.
Environment Variables#
pnpm sets the following environment variables during lifecycle script execution:
npm_package_name— the package namenpm_package_version— the package versionnpm_lifecycle_event— the name of the running script (e.g.,postinstall)
メモ
Since v11, pnpm no longer populates npm_config_* environment variables from the pnpm configuration. Only the well-known npm_* variables above are set, matching Yarn's behavior.
Built-in Command and Script Name Conflicts#
Added in: v11.0.0
The following built-in commands prefer user scripts: clean, setup, deploy, and rebuild. If your package.json defines a script with one of these names, pnpm <name> will execute the script instead of the built-in command.
To force the built-in command, use pnpm pm <name>.
ライフサイクルスクリプト#
pnpm:devPreinstall#
ローカルマシンでpnpm installを実行するときにだけ実行します。
あらゆる依存関係をインストールする前に実行します。
このスクリプトは、ルートプロジェクトの package.json に設定されている場合にのみ実行します。