fix(core): cache getting the package manager to the module scope (#25992)
<!-- 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` --> ## Current Behavior <!-- This is the behavior we have today --> This function is called many times and they all `exec` a command ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> This function is called once and the result is cached. ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
This commit is contained in:
parent
95cea78f66
commit
12c6a734fc
@ -136,11 +136,13 @@ export function buildTargetFromScript(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let packageManagerCommand: PackageManagerCommands | undefined;
|
||||||
|
|
||||||
export function readTargetsFromPackageJson(packageJson: PackageJson) {
|
export function readTargetsFromPackageJson(packageJson: PackageJson) {
|
||||||
const { scripts, nx, private: isPrivate } = packageJson ?? {};
|
const { scripts, nx, private: isPrivate } = packageJson ?? {};
|
||||||
const res: Record<string, TargetConfiguration> = {};
|
const res: Record<string, TargetConfiguration> = {};
|
||||||
const includedScripts = nx?.includedScripts || Object.keys(scripts ?? {});
|
const includedScripts = nx?.includedScripts || Object.keys(scripts ?? {});
|
||||||
const packageManagerCommand = getPackageManagerCommand();
|
packageManagerCommand ??= getPackageManagerCommand();
|
||||||
for (const script of includedScripts) {
|
for (const script of includedScripts) {
|
||||||
res[script] = buildTargetFromScript(script, scripts, packageManagerCommand);
|
res[script] = buildTargetFromScript(script, scripts, packageManagerCommand);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user