Git Product home page Git Product logo

next-plugin-storybook-demo's Introduction

Example app with Storybook

This example shows a default set up of Storybook that includes the same build features as Next (built-in CSS support, module path aliases...).

/!\ This example includes experimental features. Use with-storybook for a simpler but safer example.

Webpack 5/4

Main version uses Webpack 5, but doesn't work.

Use branch "with-webpack-4" for a version that works (but uses Webpack 4).

Local development of @next/plugin-storybook

For development purpose, please use the latest version of @next/plugin-storybook from Next.js canary branch (clone Next, yarn, yarn dev). Then link it using yalc. yarn link will cause issues with Webpack version, while Yalc simulates a local NPM registry and is closer to real install.

# In next.js
cd packages/next-plugin-storybook
yalc publish
cd packages/next
yalc publish
# NOTE: you might also need to link packages/next the same way, in case you have unexpected errors
# In this repository
yalc link @next/plugin-storybook
yalc link next

And do this again on every local update of next-plugin-storybook.

Then, you need to make sure you are using the version of Webpack bundled by Next

# in this repo
cp node_modules/webpack/lib/index.js node_modules/webpack/lib/index.js.backup
cp ./.yalc/next/dist/compiled/webpack/bundle5.js node_modules/webpack/lib/index.js

TODO

We add example usage of Next.js core feature one at a time, and check if the @next/plugin-storybook supports them correctly when we run Storybook. For instance, path aliases, styled JSX, CSS modules... If not, we must improve @next/plugin-storybook with relevant fixes.

Finish update to Webpack 5

This is mostly on Storybook side, Webpack 5 update is not completely stable (see storybookjs/storybook#14044). Currently we need resolutions to have only one version of Webpack and it doesn't seem to be enough.

Stabilizing @next/plugin-storybook

See main issue here: vercel/next.js#19345 See absolute import issue here: storybookjs/storybook#11639

Supporting CSS modules

They don't work out-of-the box, but they can be supported by adding relevant package in @next/plugin-storybook (vercel/next.js#19345 (comment)).


TypeScript

As of v6.0, Storybook has built-in TypeScript support, so no configuration is needed. If you want to customize the default configuration, refer to the TypeScript docs.

Deploy your own

Deploy the example using Vercel:

Deploy with Vercel

How to use

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example with-storybook with-storybook-app
# or
yarn create next-app --example with-storybook with-storybook-app

Run Storybook

npm run storybook
# or
yarn storybook

Build Static Storybook

npm run build-storybook
# or
yarn build-storybook

You can use Vercel to deploy Storybook. Specify storybook-static as the output directory.

next-plugin-storybook-demo's People

Contributors

eric-burel avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.