build: adjust create project script to ensure all built packages are used

The admin create script previously only updated the package.json dependencies
for direct dependencies. This did not ensure that all built packages were used
due to some built packages being used as transitive dependencies. The npm
`overrides` field is now also used to ensure that these dependencies are also
properly redirected to the built packages.
This commit is contained in:
Charles Lyding 2024-04-18 12:56:05 -04:00 committed by Alan Agius
parent 810d213e18
commit eb8f1faa4c

View File

@ -84,12 +84,9 @@ export default async function (args: CreateOptions, cwd: string): Promise<number
const packageJsonPath = path.join(projectName, 'package.json');
const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf-8'));
if (!packageJson['dependencies']) {
packageJson['dependencies'] = {};
}
if (!packageJson['devDependencies']) {
packageJson['devDependencies'] = {};
}
packageJson['dependencies'] ??= {};
packageJson['devDependencies'] ??= {};
packageJson['overrides'] ??= {};
// Set the dependencies to the new build we just used.
for (const packageName of packages.map(({ name }) => name)) {
@ -99,6 +96,8 @@ export default async function (args: CreateOptions, cwd: string): Promise<number
packageJson['dependencies'][packageName] = tar;
} else if (packageName in packageJson['devDependencies']) {
packageJson['devDependencies'][packageName] = tar;
} else {
packageJson['overrides'][packageName] = tar;
}
}