UNPKG

zoro-cli

Version:

https://github.com/vuejs/vue-cli

23 lines (21 loc) 643 B
const fs = require('fs') const path = require('path') const { importFrom } = require('zoro-cli-util/import') exports.forEachPlugin = (category, cb) => { const pluginDir = path.join(__dirname, `plugin/${category}`) if (fs.existsSync(pluginDir)) { const idToPlugin = name => ({ id: name.replace(/^\.\//, 'built-in:'), dir: pluginDir, apply: importFrom(path.join(pluginDir, name), './index'), }) fs.readdirSync(pluginDir) .filter(name => name.charAt(0) !== '.') .map(idToPlugin) .forEach(({ apply }) => { if (typeof apply === 'function') { cb(apply) } }) } }