What is @storybook/cli?
The @storybook/cli package, also known as Storybook CLI, is a command-line tool that helps developers to quickly set up and configure Storybook in their project. Storybook is an open-source tool for developing UI components in isolation for React, Vue, Angular, and many other frameworks. The CLI automates many of the initial setup and configuration processes, making it easier to integrate Storybook into a project.
What are @storybook/cli's main functionalities?
Initialize Storybook
This command sets up Storybook in your project by detecting the project type (e.g., React, Vue, Angular) and installing the necessary dependencies and adding default configurations and examples.
npx -p @storybook/cli sb init
Add Storybook support for a specific type of project
This command explicitly sets up Storybook for a React project. You can replace 'react' with 'vue', 'angular', etc., depending on the project type you are working on.
npx -p @storybook/cli sb init --type react
Addons installation
This command helps in adding specific Storybook addons to enhance its functionality, such as '@storybook/addon-essentials' which includes a set of essential addons.
npx -p @storybook/cli sb add @storybook/addon-essentials
Other packages similar to @storybook/cli
react-scripts
Similar to @storybook/cli, react-scripts is used in the setup and configuration of React applications created with Create React App. It abstracts complex configurations for Babel, Webpack, and other tools. However, it does not specifically focus on component development environments like Storybook.
angular-cli
Angular CLI is a command-line interface tool that is used to initialize, develop, scaffold, and maintain Angular applications directly. It provides a similar ease of setup for Angular projects as @storybook/cli does for setting up Storybook in Angular projects.
vue-cli
Vue CLI is a full system for rapid Vue.js development, similar to Angular CLI for Angular. It provides project scaffolding, development tools, and build optimizations. It is similar to @storybook/cli in that it helps in setting up a development environment but is focused on Vue.js applications rather than component libraries.
Storybook CLI
Storybook CLI (Command Line Interface) is the easiest way to add Storybook to your project.
Go to your project and run:
cd my-app
npx sb init
In addition to init
, the CLI also has other commands:
add
- add an addon and register itinfo
- print out system information for bug reportsmigrate
- run codemods to migrate your code
See the command-line help with -h
for details.
The CLI supports yarn. If you have installed yarn in your system and your project has a yarn.lock
file, it'll detect it and use yarn
to install dependencies.
If you don't want to use yarn
always you can use the --package-manager
option like this:
npx sb init --package-manager=npm
If you would like to force a particular version of yarn, you can use the --package-manager
flag with a value of yarn1
or yarn2
.
The CLI supports pnpm. If you have installed pnpm in your system and your project has a pnpm-lock.yaml
file, it'll detect it and use pnpm
to install dependencies.
If you don't have a lock file and would like to force pnpm to be used, you can use the --package-manager
option like this:
npx sb init --package-manager=pnpm
It also supports flow files. By default, jscodeshift, the tool used to transform the source files, uses babel to read the files. To be able to transform any flow annotated file, you need to use the flow parser.
npx sb init --parser flow
For more information visit: storybook.js.org
Manually specify project type
If the CLI cannot detect your project type, it will ask you. You can also force it to use a particular project type:
npx sb init --type <type>
Where type is one of the project types defined in project_types.ts