Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHANGE cli to not check registry when --no-install #8948

Merged
merged 1 commit into from Nov 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/api/src/version.ts
@@ -1 +1 @@
export const version = '5.3.0-beta.5';
export const version = '5.3.0-beta.7';
2 changes: 1 addition & 1 deletion lib/cli/generators/ANGULAR/index.js
Expand Up @@ -43,7 +43,7 @@ async function addDependencies(npmOptions, { storyFormat }) {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
}

function editAngularAppTsConfig() {
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/EMBER/index.js
Expand Up @@ -35,7 +35,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/ember@${storybookVersion}`,
`@storybook/addon-actions@${actionsVersion}`,
`@storybook/addon-links@${linksVersion}`,
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/HTML/index.js
Expand Up @@ -29,5 +29,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/MARKO/index.js
Expand Up @@ -30,7 +30,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/marko@${storybookVersion}`,
`@storybook/addon-actions@${addonActionVersion}`,
`@storybook/addon-knobs@${addonKnobsVersion}`,
Expand Down
7 changes: 5 additions & 2 deletions lib/cli/generators/METEOR/index.js
Expand Up @@ -83,8 +83,11 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {
}

if (dependencies.length > 0) {
installDependencies({ ...npmOptions, installAsDevDependencies: false }, dependencies);
installDependencies(
{ ...npmOptions, packageJson, installAsDevDependencies: false },
dependencies
);
}

installDependencies(npmOptions, [...devDependencies, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...devDependencies, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/MITHRIL/index.js
Expand Up @@ -31,7 +31,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/mithril@${storybookVersion}`,
`@storybook/addon-actions@${actionsVersion}`,
`@storybook/addon-links@${linksVersion}`,
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/POLYMER/index.js
Expand Up @@ -36,5 +36,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...devDependencies, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...devDependencies, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/PREACT/index.js
Expand Up @@ -31,7 +31,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/preact@${storybookVersion}`,
`@storybook/addon-actions@${actionsVersion}`,
`@storybook/addon-links@${linksVersion}`,
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/RAX/index.js
Expand Up @@ -50,7 +50,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/rax@${storybookVersion}`,
`@storybook/addon-actions@${actionsVersion}`,
`@storybook/addon-links@${linksVersion}`,
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/REACT/index.js
Expand Up @@ -35,5 +35,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/REACT_NATIVE/index.js
Expand Up @@ -71,5 +71,5 @@ export default async (npmOptions, installServer, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...devDependencies, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...devDependencies, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/REACT_SCRIPTS/index.js
Expand Up @@ -53,5 +53,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {
babelDependencies = await getBabelDependencies(npmOptions, packageJson);
}

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/RIOT/index.js
Expand Up @@ -50,5 +50,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...dependencies, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...dependencies, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/SFC_VUE/index.js
Expand Up @@ -34,5 +34,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/SVELTE/index.js
Expand Up @@ -40,7 +40,7 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/svelte@${storybookVersion}`,
`@storybook/addon-actions@${actionsVersion}`,
`@storybook/addon-links@${linksVersion}`,
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/UPDATE_PACKAGE_ORGANIZATIONS/index.js
Expand Up @@ -47,7 +47,7 @@ async function updatePackageJson(npmOptions) {
const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

if (babelDependencies.length > 0) {
installDependencies(npmOptions, babelDependencies);
installDependencies({ ...npmOptions, packageJson }, babelDependencies);
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/VUE/index.js
Expand Up @@ -54,5 +54,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

// We should probably just not even be using babel-preset-vue directly
// see: https://github.com/storybookjs/storybook/issues/4475#issuecomment-432141296
installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
2 changes: 1 addition & 1 deletion lib/cli/generators/WEB-COMPONENTS/index.js
Expand Up @@ -25,7 +25,7 @@ export default async npmOptions => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [
installDependencies({ ...npmOptions, packageJson }, [
`@storybook/web-components@${storybookVersion}`,
...babelDependencies,
]);
Expand Down
2 changes: 1 addition & 1 deletion lib/cli/generators/WEBPACK_REACT/index.js
Expand Up @@ -34,5 +34,5 @@ export default async (npmOptions, { storyFormat = 'csf' }) => {

const babelDependencies = await getBabelDependencies(npmOptions, packageJson);

installDependencies(npmOptions, [...versionedPackages, ...babelDependencies]);
installDependencies({ ...npmOptions, packageJson }, [...versionedPackages, ...babelDependencies]);
};
36 changes: 23 additions & 13 deletions lib/cli/lib/helpers.js
Expand Up @@ -206,23 +206,33 @@ export function installDependencies(npmOptions, dependencies) {
const { skipInstall } = npmOptions;

if (skipInstall) {
const spawnCommand = 'pkg-add-deps';

const installArgs = dependencies;
const { packageJson } = npmOptions;

if (npmOptions.installAsDevDependencies) {
installArgs.push('-D');
packageJson.devDependencies = {
...packageJson.devDependencies,
...dependencies.reduce((acc, i) => {
const c = i.lastIndexOf('@');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ndelangen what kind of code is this???

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • @storybook/addons@^5.3.0

  • find the last occurring '@'

  • split the string on that char

  • first part is the package name, second part is the version

  • if version is undefined make it '*'

  • add this to package.json, either in dependencies or devDependencies

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, and it's duplicated 5 lines below?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes. This solved a major blocker and I didn't mind some duplication as long as we were able to actually test the CLI again.

I'm sorry about some code-duplication. I'll get around to extracting it into a function some day.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦‍♂

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#9004

Please get your code reviewed. I appreciate that it's useful to be able to self-merge, especially in the face of deployment issues where you need to iterate. In that case, please feel free to @ me (or anybody else on the project) to do a review after the fact. Also, go back and clean up after a fire has been put out, or at the very least please be open to doing that when somebody calls you out on it.

Flaunting contribution guidelines and littering the codebase with temporary hacks--especially ones that take just a few seconds to fix--doesn't set a good example for anybody involved in the project.

const n = i.slice(0, c);
const v = i.slice(c + 1);

return { ...acc, [n]: v };
}, {}),
};
} else {
packageJson.dependencies = {
...packageJson.dependencies,
...dependencies.reduce((acc, i) => {
const c = i.lastIndexOf('@');
const n = i.slice(0, c);
const v = i.slice(c + 1);

return { ...acc, [n]: v };
}, {}),
};
}

const dependencyResult = spawnSync(spawnCommand, installArgs, {
stdio: 'inherit',
});

if (dependencyResult.status !== 0) {
logger.error('An error occurred while installing dependencies.');
logger.log(dependencyResult);
process.exit(1);
}
writePackageJson(packageJson);
} else {
const spawnCommand = npmOptions.useYarn ? 'yarn' : 'npm';
const installCommand = npmOptions.useYarn ? 'add' : 'install';
Expand Down