ember-cli
Version:
Command line tool for developing ambitious ember.js apps
48 lines (36 loc) • 902 B
JavaScript
;
const fs = require('fs');
async function determineInstallCommand(projectRoot) {
if (await isPnpmProject(projectRoot)) {
return 'pnpm install';
} else if (isYarnProject(projectRoot)) {
return 'yarn install';
} else {
return 'npm install';
}
}
async function isPnpmProject(projectRoot) {
if (fs.existsSync(`${projectRoot}/pnpm-lock.yaml`)) {
return true;
}
const { findWorkspaceDir } = await import('@pnpm/find-workspace-dir');
if (await findWorkspaceDir(projectRoot)) {
return true;
}
return false;
}
function isYarnProject(projectRoot) {
if (fs.existsSync(`${projectRoot}/yarn.lock`)) {
return true;
}
const findWorkspaceRoot = require('find-yarn-workspace-root');
if (findWorkspaceRoot(projectRoot)) {
return true;
}
return false;
}
module.exports = {
determineInstallCommand,
isPnpmProject,
isYarnProject,
};