updatePackageVersions() — react Function Reference
Architecture documentation for the updatePackageVersions() function in build-all-release-channels.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 8939a711_3ab0_2de0_0d1c_f6d01f0ba44d["updatePackageVersions()"] 39121ebe_f6d4_878e_0797_7a6b417f5f9a["build-all-release-channels.js"] 8939a711_3ab0_2de0_0d1c_f6d01f0ba44d -->|defined in| 39121ebe_f6d4_878e_0797_7a6b417f5f9a 01896c6c_c39f_713c_b9f5_5c924e738cdc["processStable()"] 01896c6c_c39f_713c_b9f5_5c924e738cdc -->|calls| 8939a711_3ab0_2de0_0d1c_f6d01f0ba44d 07ae733a_8302_4852_ff9b_8b779bea6dc2["processExperimental()"] 07ae733a_8302_4852_ff9b_8b779bea6dc2 -->|calls| 8939a711_3ab0_2de0_0d1c_f6d01f0ba44d style 8939a711_3ab0_2de0_0d1c_f6d01f0ba44d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
scripts/rollup/build-all-release-channels.js lines 402–459
function updatePackageVersions(
modulesDir,
versionsMap,
defaultVersionIfNotFound,
pinToExactVersion
) {
for (const moduleName of fs.readdirSync(modulesDir)) {
let version = versionsMap.get(moduleName);
if (version === undefined) {
// TODO: If the module is not in the version map, we should exclude it
// from the build artifacts.
version = defaultVersionIfNotFound;
}
const packageJSONPath = path.join(modulesDir, moduleName, 'package.json');
const stats = fs.statSync(packageJSONPath);
if (stats.isFile()) {
const packageInfo = JSON.parse(fs.readFileSync(packageJSONPath));
// Update version
packageInfo.version = version;
if (packageInfo.dependencies) {
for (const dep of Object.keys(packageInfo.dependencies)) {
const depVersion = versionsMap.get(dep);
if (depVersion !== undefined) {
packageInfo.dependencies[dep] = pinToExactVersion
? depVersion
: '^' + depVersion;
}
}
}
if (packageInfo.peerDependencies) {
if (
!pinToExactVersion &&
(moduleName === 'use-sync-external-store' ||
moduleName === 'use-subscription')
) {
// use-sync-external-store supports older versions of React, too, so
// we don't override to the latest version. We should figure out some
// better way to handle this.
// TODO: Remove this special case.
} else {
for (const dep of Object.keys(packageInfo.peerDependencies)) {
const depVersion = versionsMap.get(dep);
if (depVersion !== undefined) {
packageInfo.peerDependencies[dep] = pinToExactVersion
? depVersion
: '^' + depVersion;
}
}
}
}
// Write out updated package.json
fs.writeFileSync(packageJSONPath, JSON.stringify(packageInfo, null, 2));
}
}
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does updatePackageVersions() do?
updatePackageVersions() is a function in the react codebase, defined in scripts/rollup/build-all-release-channels.js.
Where is updatePackageVersions() defined?
updatePackageVersions() is defined in scripts/rollup/build-all-release-channels.js at line 402.
What calls updatePackageVersions()?
updatePackageVersions() is called by 2 function(s): processExperimental, processStable.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free