threepipe
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

utils.mjs 801B

123456789101112131415161718192021222324
  1. import path from "node:path";
  2. import fs from "node:fs";
  3. import {execSync} from "node:child_process";
  4. export function loopPluginDirs(callback){
  5. const __dirname = path.dirname(new URL(import.meta.url).pathname);
  6. const pluginsDir = path.join(__dirname, '../plugins')
  7. const pluginFolders = fs.readdirSync(pluginsDir)
  8. for (const pluginFolder of pluginFolders) {
  9. const pluginDir = path.join(pluginsDir, pluginFolder)
  10. const packageJsonPath = path.join(pluginDir, 'package.json')
  11. if (!fs.existsSync(packageJsonPath)) continue;
  12. console.log(`NPM install ${pluginFolder}...`)
  13. callback(pluginDir)
  14. }
  15. }
  16. export function execEachPlugin(command){
  17. loopPluginDirs((pluginDir) => {
  18. execSync(command, {cwd: pluginDir, stdio: 'inherit'})
  19. })
  20. }