// This script lists all dependencies that have package install scripts const path = require('path') const readInstalled = require('read-installed') const installScripts = ['preinstall', 'install', 'postinstall'] readInstalled('./', { dev: true }, function (err, data) { if (err) throw err const deps = data.dependencies Object.entries(deps).forEach(([packageName, packageData]) => { const packageScripts = packageData.scripts || {} const scriptKeys = Reflect.ownKeys(packageScripts) const hasInstallScript = installScripts.some(installKey => scriptKeys.includes(installKey)) if (!hasInstallScript) return const matchingScripts = {} if (packageScripts.preinstall) matchingScripts.preinstall = packageScripts.preinstall if (packageScripts.install) matchingScripts.install = packageScripts.install if (packageScripts.postinstall) matchingScripts.postinstall = packageScripts.postinstall const scriptNames = Reflect.ownKeys(matchingScripts) const relativePath = path.relative(process.cwd(), packageData.path) console.log(`${packageName}: ${relativePath} ${scriptNames}`) }) })