yarnを使ってるプロジェクトで、開発者がうっかり npm install
でパッケージのインストールをしてしまうと依存性解決の差異でよくわからない問題がおきることがあります。
こういう場合の対策の仕組みとして、以下のようなスクリプトを用意して npm install
を無効化し、 yarn install
を使うよう誘導することができます。
tools/preinstall-script.js
/**
* Do NOT allow using `npm` as package manager.
*/
if (process.env.npm_execpath.indexOf('yarn') === -1) {
console.error('You must use Yarn to install dependencies:');
console.error(' $ yarn install');
process.exit(1);
}
作成したスクリプトは preinstall
で実行させます。
package.json
"scripts": {
"preinstall": "node tools/preinstall-script.js"
}
この仕組みはAMP HTMLでも採用されているようです。