package.json ファイルに「npm my-script」や「yarn my-script」などのカスタム スクリプトがある場合、それらは定義したパッケージ マネージャーでのみ機能します。ただし、NPM は、明示的に指定せずに、現在の実行可能ファイルを毎回呼び出す API を提供します。
{
"scripts": {
"cleanup": "./clean-up.js",
"copy": "./copy.js",
"prepare": "npm run cleanup && npm run copy"
}
}
$npm_execpath の使用
「npm」または「yarn」(または「pnpm」などの別のパッケージ マネージャー) の代わりに文字列「$npm_execpath」を使用することで、現在の開発者が元のスクリプトの呼び出しに使用したものに関係なく、このスクリプトはすべてのパッケージ マネージャーで機能します。 .
{
"scripts": {
"cleanup": "./clean-up.js",
"copy": "./copy.js",
"prepare": "$npm_execpath run cleanup && $npm_execpath run copy"
}
}
すべてのマシンで互換性がありますか?
残念ながら、「$npm_execpth」を使用してスクリプトをパッケージ マネージャーで動作させると、Windows がインストールされているマシンでは確実に動作しません。
package.json でスクリプトを呼び出す最も信頼できる方法は何ですか?
したがって、package.json ファイルでカスタム スクリプトを呼び出す最も信頼できる方法は、パッケージ マネージャーの実行可能ファイルを明示的に定義し、チームがその実行可能ファイルのみを使用するようにすることです。
Windows を実行していないデバイスでは、「$npm_execpath」を使用してこれらのスクリプトを確実に実行できます。