diff --git a/package.json b/package.json index 3edc293860..2fb6fde935 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "packageManager": "pnpm@7.14.2", "scripts": { + "preinstall": "node scripts/block-npm-install.js", "build": "turbo run build", "dev": "turbo run dev --parallel", "clean": "turbo run clean --parallel", diff --git a/scripts/block-npm-install.js b/scripts/block-npm-install.js new file mode 100644 index 0000000000..4fbcda5b97 --- /dev/null +++ b/scripts/block-npm-install.js @@ -0,0 +1,12 @@ +const { npm_config_user_agent: UA } = process.env; +const [packageManager] = (UA ?? '').split(' '); +const [name, version] = packageManager.split('/'); +if (name !== 'pnpm') { + const suggestion = '\033[1;92mpnpm\033[0;31m'; + console.error('\033[0;31m'); + console.error('╭───────────────────────────────────────────╮'); + console.error(`│\tPlease use ${suggestion} instead of ${name} \t │`); + console.error('╰───────────────────────────────────────────╯'); + console.error('\033[0m'); + process.exit(1); +}