<!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { execSync } from 'child_process';
|
|
|
|
export function resolveEas(workspaceRoot: string): string {
|
|
try {
|
|
execSync('eas --version');
|
|
} catch {
|
|
throw new Error(
|
|
'EAS is not installed. Please run `npm install --global eas-cli` or `yarn global add eas-cli`.'
|
|
);
|
|
}
|
|
|
|
let npmGlobalPath: string, yarnGlobalPath: string;
|
|
try {
|
|
npmGlobalPath = execSync('npm root -g', { windowsHide: true })
|
|
?.toString()
|
|
?.trim()
|
|
?.replace('\u001b[2K\u001b[1G', ''); // strip out ansi codes
|
|
} catch {}
|
|
try {
|
|
yarnGlobalPath = execSync('yarn global dir', { windowsHide: true })
|
|
?.toString()
|
|
?.trim()
|
|
?.replace('\u001b[2K\u001b[1G', ''); // strip out ansi codes
|
|
} catch {}
|
|
|
|
try {
|
|
return require.resolve('eas-cli/bin/run', {
|
|
paths: [npmGlobalPath, yarnGlobalPath, workspaceRoot].filter(
|
|
Boolean
|
|
) as string[],
|
|
});
|
|
} catch {
|
|
throw new Error(
|
|
'Can not resolve EAS. Please run `npm install --global eas-cli` or `yarn global add eas-cli`.'
|
|
);
|
|
}
|
|
}
|