😕
pnpmではpre, postプレフィックスが使えない
pnpmではpre, postプレフィックスが使えない
npmのscriptsにはpre, postというプレフィックスが存在するのをご存知でしょうか?(公式Doc)
例えば、以下のようなpackage.json
があった時に
...
"prebuild": "hoge command",
"build": "huga build"
...
npm run build
を実行すると、buildを実行する前にprebuildが実行されるというものです。(postbuildはbuild実行後に実行される)
私は最近知りました。
これらのプレフプロジェクトうと、package.json
のscriptsをもう少し綺麗に記述することができるかもしれないと思い、少しずつ使ってみています。
pnpmを採用しているプロジェクトでも使ってみようとしたところ、preプレフィックスが発火していないようでした。
そこで調べてみたところ、pnpmのデフォルトではpre, postプレフィックスは使えないようです。
デフォルトでは、pnpm はユーザー定義スクリプトの任意の pre および post フックを実行しません (例えば prestart など) 。
出典:
おまけ
オプションを設定すると使える
enable-pre-post-scripts
というオプションをtrue
にすると、pre, postプレフィックスが動作するようです。
pnpm -enable-pre-post-scripts=true build
上記で期待通りに動きましたが
ドキュメントには、.npmrc
に設定するやり方が記載されていました。
宿題
時間があるときに、yarnやbunだとどうなるか調べてみおうと思います。\
追記: yarnも使えないっぽい
Discussion