Socket
Socket
Sign inDemoInstall

@storybook/web-components-webpack5

Package Overview
Dependencies
6
Maintainers
30
Versions
624
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @storybook/web-components-webpack5

Storybook for web-components: View web components snippets in isolation with Hot Reloading.


Version published
Weekly downloads
9.2K
decreased by-11.11%
Maintainers
30
Created
Weekly downloads
 

Changelog

Source

7.0.0 (March 31, 2023)

Storybook 7.0 is here! 🎉

  • ⚡️ First-class Vite

  • 🔼 Zero-config NextJS

  • 🇸 Zero-config SvelteKit

  • 🏗️ Frameworks API

  • 3️⃣ Component Story Format v3

  • 🛡️ Improved type safety

  • 📚 Docs overhaul with MDx2 support

  • ☂️ Code coverage for interaction testing

  • 🖼️ UI design refresh

  • 🏛️ Improved stability

    7.0 contains hundreds more fixes, features, and tweaks. Browse the changelogs matching 7.0.0-alpha.*, 7.0.0-beta.*, and 7.0.0-rc.* for the full list of changes.

See our Migration guide to upgrade from earlier versions of Storybook.

Full announcement and proper release to the latest npm tag coming soon. 😘

Readme

Source

Storybook for web-components


Storybook for web-components is a UI development environment for your plain web-component snippets. With it, you can visualize different states of your UI components and develop them interactively.

Storybook Screenshot

Storybook runs outside of your app. So you can develop UI components in isolation without worrying about app specific dependencies and requirements.

Getting Started

cd my-app
npx storybook init -t web_components

For more information visit: storybook.js.org


Storybook also comes with a lot of addons and a great API to customize as you wish. You can also build a static version of your storybook and deploy it anywhere you want.

Hot Module Reloading (HMR)

As web components register on a global registry which only accepts a certain name/class once it can lead to errors when using classical HMR. There are ideas on how to archive HMR with a static registry but there is no proven solution yet. Therefore the best approach for now is to do full page reloads. If you keep your stories to specific states of components (which we would recommend anyways) this usually means it is fast.

Setup es6/7 dependencies

By default storybook only works with precompiled ES5 code but as most web components themselves and their libs are distributed as ES2017 you will need to manually mark those packages as "needs transpilation".

For example if you have a library called my-library which is in ES2017 then you can add it like so

// .storybook/main.js

export default {
  webpackFinal: async (config) => {
    // find web-components rule for extra transpilation
    const webComponentsRule = config.module.rules.find(
      (rule) => rule.use && rule.use.options && rule.use.options.babelrc === false
    );
    // add your own `my-library`
    webComponentsRule.test.push(new RegExp(`node_modules(\\/|\\\\)my-library(.*)\\.js$`));

    return config;
  },
};

By default the following folders are included

  • src/*.js
  • packages/*/src/*.js
  • node_modules/lit-html/*.js
  • node_modules/lit-element/*.js
  • node_modules/@open-wc/*.js
  • node_modules/@polymer/*.js
  • node_modules/@vaadin/*.js

As you can see the src folder is also included. The reason for that is as it has some extra configuration to allow for example import.meta. If you use a different folder you will need to make sure webpack/babel can handle it.

FAQ

  • While working on my component I get the error Failed to execute 'define' on 'CustomElementRegistry': the name "..." has already been used with this registry => please see Setup page reload via HMR

Keywords

FAQs

Last updated on 31 Mar 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc