use meteor npm and meteor update --npm in create-app script to manage dependencies

This commit is contained in:
Nacho Codoñer
2026-03-03 12:32:08 +01:00
parent 80087a972c
commit d0eed87993
2 changed files with 22 additions and 8 deletions

View File

@@ -1832,7 +1832,7 @@ main.registerCommand({
}
// Compile the app to resolve NPM dependencies bump coming from plugins
if (!files.inCheckout() && options["npm"]) {
if (options["npm"]) {
await compileMeteorApp(options);
return 0;
}

View File

@@ -364,18 +364,23 @@ async function setupFromApp(appName, destDir, { isMonorepo = false, force = fals
stdio: 'inherit',
});
log.step('Updating Meteor npm dependencies...');
await execa(METEOR_EXECUTABLE, ['update', '--npm'], {
cwd: meteorAppDir,
stdio: 'inherit',
});
if (isMonorepo) {
log.step('Running npm install at root level...');
await execa.command('npm install', { cwd: destDir, stdio: 'inherit', shell: true });
log.step('Running npm install at app level...');
await execa.command('npm install', {
log.step('Running meteor npm install at root level...');
await execa(METEOR_EXECUTABLE, ['npm', 'install'], { cwd: destDir, stdio: 'inherit' });
log.step('Running meteor npm install at app level...');
await execa(METEOR_EXECUTABLE, ['npm', 'install'], {
cwd: path.join(destDir, 'app'),
stdio: 'inherit',
shell: true,
});
} else {
log.step('Running npm install...');
await execa.command('npm install', { cwd: destDir, stdio: 'inherit', shell: true });
log.step('Running meteor npm install...');
await execa(METEOR_EXECUTABLE, ['npm', 'install'], { cwd: destDir, stdio: 'inherit' });
}
return { destDir, appPackageJsonPath };
@@ -410,6 +415,15 @@ async function setupFromSkeleton(skeletonName, destDir, { force = false } = {})
stdio: 'inherit',
});
log.step('Updating Meteor npm dependencies...');
await execa(METEOR_EXECUTABLE, ['update', '--npm'], {
cwd: destDir,
stdio: 'inherit',
});
log.step('Running meteor npm install...');
await execa(METEOR_EXECUTABLE, ['npm', 'install'], { cwd: destDir, stdio: 'inherit' });
const appPackageJsonPath = path.join(destDir, 'package.json');
const envVars = extractEnvVarsFromTestFile(skeletonName, false);