mirror of
https://github.com/storybookjs/storybook.git
synced 2025-03-19 05:02:40 +08:00
Add --tag
option to upgrade
script
This commit is contained in:
parent
585edb6434
commit
5bc63f881b
@ -81,6 +81,7 @@ program
|
|||||||
.option('-N --use-npm', 'Use NPM to install dependencies (deprecated)')
|
.option('-N --use-npm', 'Use NPM to install dependencies (deprecated)')
|
||||||
.option('-y --yes', 'Skip prompting the user')
|
.option('-y --yes', 'Skip prompting the user')
|
||||||
.option('-n --dry-run', 'Only check for upgrades, do not install')
|
.option('-n --dry-run', 'Only check for upgrades, do not install')
|
||||||
|
.option('-t --tag <tag>', 'Upgrade to a certain npm dist-tag (e.g. next, prerelease)')
|
||||||
.option('-p --prerelease', 'Upgrade to the pre-release packages')
|
.option('-p --prerelease', 'Upgrade to the pre-release packages')
|
||||||
.option('-s --skip-check', 'Skip postinstall version and automigration checks')
|
.option('-s --skip-check', 'Skip postinstall version and automigration checks')
|
||||||
.action((options: UpgradeOptions) => upgrade(options));
|
.action((options: UpgradeOptions) => upgrade(options));
|
||||||
|
@ -136,6 +136,7 @@ export const addExtraFlags = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
export interface UpgradeOptions {
|
export interface UpgradeOptions {
|
||||||
|
tag: string;
|
||||||
prerelease: boolean;
|
prerelease: boolean;
|
||||||
skipCheck: boolean;
|
skipCheck: boolean;
|
||||||
useNpm: boolean;
|
useNpm: boolean;
|
||||||
@ -146,6 +147,7 @@ export interface UpgradeOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const doUpgrade = async ({
|
export const doUpgrade = async ({
|
||||||
|
tag,
|
||||||
prerelease,
|
prerelease,
|
||||||
skipCheck,
|
skipCheck,
|
||||||
useNpm,
|
useNpm,
|
||||||
@ -161,13 +163,26 @@ export const doUpgrade = async ({
|
|||||||
|
|
||||||
commandLog(`Checking for latest versions of '@storybook/*' packages`);
|
commandLog(`Checking for latest versions of '@storybook/*' packages`);
|
||||||
if (!options.disableTelemetry) {
|
if (!options.disableTelemetry) {
|
||||||
telemetry('upgrade', { prerelease });
|
telemetry('upgrade', { prerelease, tag });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tag && prerelease) {
|
||||||
|
throw new Error(
|
||||||
|
`Cannot set both --tag and --prerelease. Use --tag next to get the latest prereleae`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let target = 'latest';
|
||||||
|
if (prerelease) {
|
||||||
|
target = 'greatest';
|
||||||
|
} else if (tag) {
|
||||||
|
target = `@${tag}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
let flags = [];
|
let flags = [];
|
||||||
if (!dryRun) flags.push('--upgrade');
|
if (!dryRun) flags.push('--upgrade');
|
||||||
flags.push('--target');
|
flags.push('--target');
|
||||||
flags.push(prerelease ? 'greatest' : 'latest');
|
flags.push(target);
|
||||||
flags = addExtraFlags(EXTRA_FLAGS, flags, packageManager.retrievePackageJson());
|
flags = addExtraFlags(EXTRA_FLAGS, flags, packageManager.retrievePackageJson());
|
||||||
const check = spawnSync('npx', ['npm-check-updates@latest', '/storybook/', ...flags], {
|
const check = spawnSync('npx', ['npm-check-updates@latest', '/storybook/', ...flags], {
|
||||||
stdio: 'pipe',
|
stdio: 'pipe',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user