46 lines
878 B
TypeScript
46 lines
878 B
TypeScript
import { logger } from 'rslog';
|
|
import { execSync } from 'child_process';
|
|
import { getVantConfig } from './constant.js';
|
|
|
|
let hasYarnCache: boolean;
|
|
|
|
export function hasYarn() {
|
|
if (hasYarnCache === undefined) {
|
|
try {
|
|
execSync('yarn --version', { stdio: 'ignore' });
|
|
hasYarnCache = true;
|
|
} catch (e) {
|
|
hasYarnCache = false;
|
|
}
|
|
}
|
|
|
|
return hasYarnCache;
|
|
}
|
|
|
|
export function getPackageManager() {
|
|
const { build } = getVantConfig();
|
|
|
|
if (build?.packageManager) {
|
|
return build?.packageManager;
|
|
}
|
|
|
|
return hasYarn() ? 'yarn' : 'npm';
|
|
}
|
|
|
|
export async function installDependencies() {
|
|
logger.info('Install Dependencies\n');
|
|
|
|
try {
|
|
const manager = getPackageManager();
|
|
|
|
execSync(`${manager} install --prod=false`, {
|
|
stdio: 'inherit',
|
|
});
|
|
|
|
console.log('');
|
|
} catch (err) {
|
|
console.log(err);
|
|
throw err;
|
|
}
|
|
}
|