evolution-manager/lib/utils/build.js
2023-11-19 16:31:24 -03:00

54 lines
1.4 KiB
JavaScript

const { exec } = require('child_process')
const fs = require('fs')
const path = require('path')
module.exports = (envs = {}) => {
return new Promise((resolve, reject) => {
verifyViteInstallation().then(() => {
console.log('📦 Build start')
console.time('📦 Build complete')
const distFolder = path.join(__dirname, '..', '..', 'dist')
if (fs.existsSync(distFolder)) {
console.time('📦 Remove dist folder')
fs.rmSync(distFolder, { recursive: true, force: true })
console.timeEnd('📦 Remove dist folder')
}
// pass envs to build
exec(`npm run build`, { env: envs, cwd: path.join(__dirname, '..', '..') }, (err, stdout) => {
if (err) {
console.error(err)
reject(err)
return
}
console.log(stdout)
console.timeEnd('📦 Build complete')
resolve()
})
})
}).catch(() => {
return
})
}
const verifyViteInstallation = () => {
return new Promise((resolve, reject) => {
exec(`vite --v`, (err) => {
if (!err) return resolve()
console.log('🚨 Vite not installed, trying to install it')
exec(`npm install -g vite`, (err) => {
if (err) {
console.log('🚨 Vite installation failed')
reject(err)
return
}
console.log('🚨 Vite installed')
console.log('🔁 Run the command again')
reject()
})
})
})
}