@storybook/builder-webpack5 7.0.0-alpha.39 → 7.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/chunk-HKSD7XQF.mjs +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/presets/custom-webpack-preset.d.ts +9 -0
- package/dist/presets/custom-webpack-preset.js +3 -0
- package/dist/presets/custom-webpack-preset.mjs +3 -0
- package/dist/presets/preview-preset.d.ts +8 -0
- package/dist/presets/preview-preset.js +1 -0
- package/dist/presets/preview-preset.mjs +1 -0
- package/package.json +49 -22
- package/templates/virtualModuleEntry.template.js +62 -0
- package/templates/virtualModuleStory.template.js +3 -0
- package/dist/cjs/index.js +0 -344
- package/dist/cjs/presets/custom-webpack-preset.js +0 -76
- package/dist/cjs/presets/preview-preset.js +0 -53
- package/dist/cjs/preview/babel-loader-preview.js +0 -22
- package/dist/cjs/preview/base-webpack.config.js +0 -78
- package/dist/cjs/preview/iframe-webpack.config.js +0 -256
- package/dist/cjs/preview/virtualModuleEntry.template.js +0 -94
- package/dist/cjs/preview/virtualModuleStory.template.js +0 -6
- package/dist/cjs/types.js +0 -5
- package/dist/esm/index.js +0 -278
- package/dist/esm/presets/custom-webpack-preset.js +0 -48
- package/dist/esm/presets/preview-preset.js +0 -32
- package/dist/esm/preview/babel-loader-preview.js +0 -12
- package/dist/esm/preview/base-webpack.config.js +0 -69
- package/dist/esm/preview/iframe-webpack.config.js +0 -231
- package/dist/esm/preview/virtualModuleEntry.template.js +0 -87
- package/dist/esm/preview/virtualModuleStory.template.js +0 -3
- package/dist/esm/types.js +0 -1
- package/dist/types/index.d.ts +0 -18
- package/dist/types/presets/custom-webpack-preset.d.ts +0 -6
- package/dist/types/presets/preview-preset.d.ts +0 -4
- package/dist/types/preview/babel-loader-preview.d.ts +0 -10
- package/dist/types/preview/base-webpack.config.d.ts +0 -3
- package/dist/types/preview/iframe-webpack.config.d.ts +0 -7
- package/dist/types/types.d.ts +0 -32
package/README.md
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Builder implemented with `webpack5` and `webpack5`-compatible loaders/plugins/config, used by `@storybook/core-server` to build the preview iframe.
|
|
4
4
|
|
|
5
|
-
`webpack4` is the default. To configure your Storybook to run `webpack5`, install `@storybook/manager-webpack5` and `@storybook/builder-webpack5` as dev dependencies then update your `.storybook/main.js` configuration.
|
|
6
|
-
|
|
7
5
|
```js
|
|
8
6
|
module.exports = {
|
|
9
7
|
core: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=(a=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(a,{get:(b,c)=>(typeof require!="undefined"?require:b)[c]}):a)(function(a){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+a+'" is not supported')});export{d as a};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import webpack__default, { Configuration, Stats } from 'webpack';
|
|
2
|
+
import { Options as Options$1, Builder } from '@storybook/core-common';
|
|
3
|
+
import { StorybookConfig, Options, BuilderResult as BuilderResult$1 } from '@storybook/core-webpack';
|
|
4
|
+
import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
|
|
5
|
+
|
|
6
|
+
declare type TypeScriptOptionsBase = Required<StorybookConfig>['typescript'];
|
|
7
|
+
/**
|
|
8
|
+
* Options for TypeScript usage within Storybook.
|
|
9
|
+
*/
|
|
10
|
+
interface TypescriptOptions extends TypeScriptOptionsBase {
|
|
11
|
+
/**
|
|
12
|
+
* Configures `fork-ts-checker-webpack-plugin`
|
|
13
|
+
*/
|
|
14
|
+
checkOptions?: ForkTsCheckerWebpackPlugin['options'];
|
|
15
|
+
}
|
|
16
|
+
interface StorybookConfigWebpack extends Pick<StorybookConfig, 'webpack' | 'webpackFinal'> {
|
|
17
|
+
/**
|
|
18
|
+
* Modify or return a custom Webpack config after the Storybook's default configuration
|
|
19
|
+
* has run (mostly used by addons).
|
|
20
|
+
*/
|
|
21
|
+
webpack?: (config: Configuration, options: Options) => Configuration | Promise<Configuration>;
|
|
22
|
+
/**
|
|
23
|
+
* Modify or return a custom Webpack config after every addon has run.
|
|
24
|
+
*/
|
|
25
|
+
webpackFinal?: (config: Configuration, options: Options) => Configuration | Promise<Configuration>;
|
|
26
|
+
}
|
|
27
|
+
declare type BuilderOptions = {
|
|
28
|
+
fsCache?: boolean;
|
|
29
|
+
lazyCompilation?: boolean;
|
|
30
|
+
};
|
|
31
|
+
interface BuilderResult extends BuilderResult$1 {
|
|
32
|
+
stats?: Stats;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare type WebpackBuilder = Builder<Configuration, Stats>;
|
|
36
|
+
declare type BuilderStartOptions = Parameters<WebpackBuilder['start']>['0'];
|
|
37
|
+
declare const executor: {
|
|
38
|
+
get: (options: Options$1) => Promise<typeof webpack__default>;
|
|
39
|
+
};
|
|
40
|
+
declare const getConfig: WebpackBuilder['getConfig'];
|
|
41
|
+
declare const bail: WebpackBuilder['bail'];
|
|
42
|
+
declare const start: (options: BuilderStartOptions) => Promise<void | {
|
|
43
|
+
stats?: webpack__default.Stats | undefined;
|
|
44
|
+
totalTime: [number, number];
|
|
45
|
+
bail: (e?: Error | undefined) => Promise<void>;
|
|
46
|
+
}>;
|
|
47
|
+
declare const build: (options: BuilderStartOptions) => Promise<void | webpack__default.Stats>;
|
|
48
|
+
declare const corePresets: string[];
|
|
49
|
+
declare const overridePresets: string[];
|
|
50
|
+
|
|
51
|
+
export { BuilderOptions, BuilderResult, StorybookConfigWebpack, TypescriptOptions, bail, build, corePresets, executor, getConfig, overridePresets, start };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var R=Object.create;var b=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var I=(e,r)=>{for(var t in r)b(e,t,{get:r[t],enumerable:!0})},O=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of C(r))!j.call(e,a)&&a!==t&&b(e,a,{get:()=>r[a],enumerable:!(n=T(r,a))||n.enumerable});return e};var g=(e,r,t)=>(t=e!=null?R(U(e)):{},O(r||!e||!e.__esModule?b(t,"default",{value:e,enumerable:!0}):t,e)),D=e=>O(b({},"__esModule",{value:!0}),e);var $={};I($,{bail:()=>h,build:()=>_,corePresets:()=>V,executor:()=>S,getConfig:()=>v,overridePresets:()=>A,start:()=>M});module.exports=D($);var f=g(require("webpack")),P=g(require("webpack-dev-middleware")),x=g(require("webpack-hot-middleware")),i=require("@storybook/node-logger"),W=require("@storybook/core-common"),E=require("@storybook/core-webpack"),B=require("path"),u,k,S={get:async e=>{var n;let r=await e.presets.apply("webpackVersion")||"5",t=((n=await e.presets.apply("webpackInstance"))==null?void 0:n.default)||f.default;return(0,E.checkWebpackVersion)({version:r},"5","builder-webpack5"),t}},v=async e=>{let{presets:r}=e,t=await r.apply("typescript",{},e),n=await r.apply("babel",{},{...e,typescriptOptions:t}),a=await r.apply("frameworkOptions");return r.apply("webpack",{},{...e,babelOptions:n,typescriptOptions:t,frameworkOptions:a})},m,h=async()=>{if(m)try{await m.throw(new Error)}catch{}return k&&k(),new Promise((e,r)=>{if(process&&u)try{u.close(()=>e()),i.logger.warn("Force closed preview build")}catch{i.logger.warn("Unable to close preview build!"),e()}else e()})},G=async function*({startTime:r,options:t,router:n}){var y;let a=await S.get(t);yield;let p=await v(t);yield;let c=a(p);if(!c){let l=`${p.name}: missing webpack compiler at runtime!`;return i.logger.error(l),{bail:h,totalTime:process.hrtime(r),stats:{hasErrors:()=>!0,hasWarnings:()=>!1,toJson:()=>({warnings:[],errors:[l]})}}}let{handler:d,modulesCount:w}=await(0,W.useProgressReporting)(n,r,t);yield,new f.ProgressPlugin({handler:d,modulesCount:w}).apply(c);let s={publicPath:(y=p.output)==null?void 0:y.publicPath,writeToDisk:!0};u=(0,P.default)(c,s),n.use(u),n.use((0,x.default)(c));let o=await new Promise((l,F)=>{u==null||u.waitUntilValid(l),k=F});if(yield,!o)throw new Error("no stats after building preview");if(o.hasErrors())throw o;return{bail:h,stats:o,totalTime:process.hrtime(r)}},J=async function*({startTime:r,options:t}){let n=await S.get(t);yield,i.logger.info("=> Compiling preview..");let a=await v(t);yield;let p=n(a);if(!p){let c=`${a.name}: missing webpack compiler at runtime!`;return i.logger.error(c),{hasErrors:()=>!0,hasWarnings:()=>!1,toJson:()=>({warnings:[],errors:[c]})}}return new Promise((c,d)=>{p.run((w,s)=>{if(w||!s||s.hasErrors()){if(i.logger.error("=> Failed to build the preview"),process.exitCode=1,w){i.logger.error(w.message),p.close(()=>d(w));return}if(s&&(s.hasErrors()||s.hasWarnings())){let{warnings:o=[],errors:y=[]}=s.toJson(typeof a.stats=="string"?a.stats:{warnings:!0,errors:!0,...a.stats});y.forEach(l=>i.logger.error(l.message)),o.forEach(l=>i.logger.error(l.message)),p.close(()=>t.debugWebpack?d(s):d(new Error("=> Webpack failed, learn more with --debug-webpack")));return}}i.logger.trace({message:"=> Preview built",time:process.hrtime(r)}),s&&s.hasWarnings()&&s.toJson({warnings:!0}).warnings.forEach(o=>i.logger.warn(o.message)),p.close(o=>o?d(o):c(s))})})},M=async e=>{m=G(e);let r;do r=await m.next();while(!r.done);return r.value},_=async e=>{m=J(e);let r;do r=await m.next();while(!r.done);return r.value},V=[(0,B.join)(__dirname,"presets/preview-preset.js")],A=[(0,B.join)(__dirname,"./presets/custom-webpack-preset.js")];0&&(module.exports={bail,build,corePresets,executor,getConfig,overridePresets,start});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-HKSD7XQF.mjs";import S,{ProgressPlugin as O}from"webpack";import C from"webpack-dev-middleware";import x from"webpack-hot-middleware";import{logger as n}from"@storybook/node-logger";import{useProgressReporting as P}from"@storybook/core-common";import{checkWebpackVersion as v}from"@storybook/core-webpack";import{join as g}from"path";var m,b,k={get:async r=>{let e=await r.presets.apply("webpackVersion")||"5",t=(await r.presets.apply("webpackInstance"))?.default||S;return v({version:e},"5","builder-webpack5"),t}},B=async r=>{let{presets:e}=r,t=await e.apply("typescript",{},r),c=await e.apply("babel",{},{...r,typescriptOptions:t}),a=await e.apply("frameworkOptions");return e.apply("webpack",{},{...r,babelOptions:c,typescriptOptions:t,frameworkOptions:a})},w,f=async()=>{if(w)try{await w.throw(new Error)}catch{}return b&&b(),new Promise((r,e)=>{if(process&&m)try{m.close(()=>r()),n.warn("Force closed preview build")}catch{n.warn("Unable to close preview build!"),r()}else r()})},W=async function*({startTime:e,options:t,router:c}){let a=await k.get(t);yield;let s=await B(t);yield;let p=a(s);if(!p){let d=`${s.name}: missing webpack compiler at runtime!`;return n.error(d),{bail:f,totalTime:process.hrtime(e),stats:{hasErrors:()=>!0,hasWarnings:()=>!1,toJson:()=>({warnings:[],errors:[d]})}}}let{handler:l,modulesCount:u}=await P(c,e,t);yield,new O({handler:l,modulesCount:u}).apply(p);let o={publicPath:s.output?.publicPath,writeToDisk:!0};m=C(p,o),c.use(m),c.use(x(p));let i=await new Promise((d,y)=>{m?.waitUntilValid(d),b=y});if(yield,!i)throw new Error("no stats after building preview");if(i.hasErrors())throw i;return{bail:f,stats:i,totalTime:process.hrtime(e)}},R=async function*({startTime:e,options:t}){let c=await k.get(t);yield,n.info("=> Compiling preview..");let a=await B(t);yield;let s=c(a);if(!s){let p=`${a.name}: missing webpack compiler at runtime!`;return n.error(p),{hasErrors:()=>!0,hasWarnings:()=>!1,toJson:()=>({warnings:[],errors:[p]})}}return new Promise((p,l)=>{s.run((u,o)=>{if(u||!o||o.hasErrors()){if(n.error("=> Failed to build the preview"),process.exitCode=1,u){n.error(u.message),s.close(()=>l(u));return}if(o&&(o.hasErrors()||o.hasWarnings())){let{warnings:i=[],errors:d=[]}=o.toJson(typeof a.stats=="string"?a.stats:{warnings:!0,errors:!0,...a.stats});d.forEach(y=>n.error(y.message)),i.forEach(y=>n.error(y.message)),s.close(()=>t.debugWebpack?l(o):l(new Error("=> Webpack failed, learn more with --debug-webpack")));return}}n.trace({message:"=> Preview built",time:process.hrtime(e)}),o&&o.hasWarnings()&&o.toJson({warnings:!0}).warnings.forEach(i=>n.warn(i.message)),s.close(i=>i?l(i):p(o))})})},_=async r=>{w=W(r);let e;do e=await w.next();while(!e.done);return e.value},V=async r=>{w=R(r);let e;do e=await w.next();while(!e.done);return e.value},A=[g(__dirname,"presets/preview-preset.js")],$=[g(__dirname,"./presets/custom-webpack-preset.js")];export{f as bail,V as build,A as corePresets,k as executor,B as getConfig,$ as overridePresets,_ as start};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as webpack$1 from 'webpack';
|
|
2
|
+
import { Configuration } from 'webpack';
|
|
3
|
+
import { Options } from '@storybook/core-common';
|
|
4
|
+
|
|
5
|
+
declare function webpack(config: Configuration, options: Options): Promise<any>;
|
|
6
|
+
declare const webpackInstance: () => Promise<typeof webpack$1>;
|
|
7
|
+
declare const webpackVersion: () => Promise<string>;
|
|
8
|
+
|
|
9
|
+
export { webpack, webpackInstance, webpackVersion };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var k=Object.create;var f=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var W=(e,t)=>{for(var o in t)f(e,o,{get:t[o],enumerable:!0})},d=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of v(t))!x.call(e,a)&&a!==o&&f(e,a,{get:()=>t[a],enumerable:!(i=C(t,a))||i.enumerable});return e};var m=(e,t,o)=>(o=e!=null?k(h(e)):{},d(t||!e||!e.__esModule?f(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>d(f({},"__esModule",{value:!0}),e);var U={};W(U,{webpack:()=>O,webpackInstance:()=>P,webpackVersion:()=>S});module.exports=D(U);var L=m(require("webpack")),l=require("@storybook/node-logger"),b=m(require("util-deprecate")),w=require("ts-dedent"),y=require("@storybook/core-webpack");var u=require("@storybook/node-logger");async function g(e,t){var c,n,p,s;if((c=t.presetsList)!=null&&c.some(r=>/@storybook(\/|\\)preset-create-react-app/.test(typeof r=="string"?r:r.name)))return e;let o=(n=t.presetsList)==null?void 0:n.some(r=>/@storybook(\/|\\)addon-postcss/.test(typeof r=="string"?r:r.name)),i={};o||(u.logger.info("=> Using implicit CSS loaders"),i={test:/\.css$/,sideEffects:!0,use:[require.resolve("style-loader"),{loader:require.resolve("css-loader"),options:{importLoaders:1}}]});let a=e.mode!=="development";return{...e,module:{...e.module,rules:[...((p=e.module)==null?void 0:p.rules)||[],i,{test:/\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,type:"asset/resource",generator:{filename:a?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{test:/\.(mp4|webm|wav|mp3|m4a|aac|oga)(\?.*)?$/,type:"asset",parser:{dataUrlCondition:{maxSize:1e4}},generator:{filename:a?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}}]},resolve:{...e.resolve,fallback:{crypto:!1,assert:!1,...(s=e.resolve)==null?void 0:s.fallback}}}}async function O(e,t){let{configDir:o,configType:i,presets:a,webpackConfig:c}=t,n=await a.apply("core"),p=e;n!=null&&n.disableWebpackDefaults||(p=await g(e,t));let s=await a.apply("webpackFinal",p,t);if(c)return(0,b.default)(c,w.dedent`
|
|
2
|
+
You've provided a webpack config directly in CallOptions, this is not recommended. Please use presets instead. This feature will be removed in 7.0
|
|
3
|
+
`)(s);let r=(0,y.loadCustomWebpackConfig)(o);return typeof r=="function"?(l.logger.info("=> Loading custom Webpack config (full-control mode)."),r({config:s,mode:i})):(l.logger.info("=> Using default Webpack5 setup"),s)}var P=async()=>L,S=async()=>"5";0&&(module.exports={webpack,webpackInstance,webpackVersion});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as s}from"../chunk-HKSD7XQF.mjs";import*as g from"webpack";import{logger as m}from"@storybook/node-logger";import b from"util-deprecate";import{dedent as w}from"ts-dedent";import{loadCustomWebpackConfig as y}from"@storybook/core-webpack";import{logger as u}from"@storybook/node-logger";async function f(e,o){if(o.presetsList?.some(t=>/@storybook(\/|\\)preset-create-react-app/.test(typeof t=="string"?t:t.name)))return e;let i=o.presetsList?.some(t=>/@storybook(\/|\\)addon-postcss/.test(typeof t=="string"?t:t.name)),r={};i||(u.info("=> Using implicit CSS loaders"),r={test:/\.css$/,sideEffects:!0,use:[s.resolve("style-loader"),{loader:s.resolve("css-loader"),options:{importLoaders:1}}]});let a=e.mode!=="development";return{...e,module:{...e.module,rules:[...e.module?.rules||[],r,{test:/\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,type:"asset/resource",generator:{filename:a?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{test:/\.(mp4|webm|wav|mp3|m4a|aac|oga)(\?.*)?$/,type:"asset",parser:{dataUrlCondition:{maxSize:1e4}},generator:{filename:a?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}}]},resolve:{...e.resolve,fallback:{crypto:!1,assert:!1,...e.resolve?.fallback}}}}async function D(e,o){let{configDir:i,configType:r,presets:a,webpackConfig:t}=o,l=await a.apply("core"),c=e;l?.disableWebpackDefaults||(c=await f(e,o));let n=await a.apply("webpackFinal",c,o);if(t)return b(t,w`
|
|
2
|
+
You've provided a webpack config directly in CallOptions, this is not recommended. Please use presets instead. This feature will be removed in 7.0
|
|
3
|
+
`)(n);let p=y(i);return typeof p=="function"?(m.info("=> Loading custom Webpack config (full-control mode)."),p({config:n,mode:r})):(m.info("=> Using default Webpack5 setup"),n)}var L=async()=>g,P=async()=>"5";export{D as webpack,L as webpackInstance,P as webpackVersion};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as webpack$1 from 'webpack';
|
|
2
|
+
|
|
3
|
+
declare const webpack: (_: unknown, options: any) => Promise<webpack$1.Configuration>;
|
|
4
|
+
declare const entries: (_: unknown, options: any) => Promise<string[]>;
|
|
5
|
+
declare const babel: (config: any, options: any) => Promise<any>;
|
|
6
|
+
declare const babelLoaderRef: () => string;
|
|
7
|
+
|
|
8
|
+
export { babel, babelLoaderRef, entries, webpack };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var Z=Object.create;var b=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var oe=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var se=(e,t)=>{for(var n in t)b(e,n,{get:t[n],enumerable:!0})},R=(e,t,n,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of te(t))!re.call(e,l)&&l!==n&&b(e,l,{get:()=>t[l],enumerable:!(f=ee(t,l))||f.enumerable});return e};var r=(e,t,n)=>(n=e!=null?Z(oe(e)):{},R(t||!e||!e.__esModule?b(n,"default",{value:e,enumerable:!0}):n,e)),ne=e=>R(b({},"__esModule",{value:!0}),e);var ce={};se(ce,{babel:()=>le,babelLoaderRef:()=>pe,entries:()=>ae,webpack:()=>ie});module.exports=ne(ce);var s=r(require("path")),c=require("webpack"),q=r(require("html-webpack-plugin")),D=r(require("case-sensitive-paths-webpack-plugin")),L=r(require("terser-webpack-plugin")),M=r(require("webpack-virtual-modules")),$=r(require("fork-ts-checker-webpack-plugin")),o=require("@storybook/core-common"),k=require("@storybook/core-webpack");var N=require("@storybook/core-common"),x=(e,t)=>({test:t.skipBabel?/\.(mjs|jsx?)$/:/\.(mjs|tsx?|jsx?)$/,use:[{loader:require.resolve("babel-loader"),options:e}],include:[(0,N.getProjectRoot)()],exclude:/node_modules/});var C={global:s.default.dirname(require.resolve("global/package.json")),...["addons","api","store","channels","channel-postmessage","channel-websocket","components","core-events","router","theming","preview-web","client-api","client-logger"].reduce((e,t)=>({...e,[`@storybook/${t}`]:s.default.dirname(require.resolve(`@storybook/${t}/package.json`))}),{})},I=async e=>{var _;let{outputDir:t=s.default.join(".","public"),quiet:n,packageJson:f,configType:l,presets:i,previewUrl:B,babelOptions:A,typescriptOptions:w,features:v,serverChannelUrl:F}=e,E=await(0,o.getFrameworkName)(e),H=await i.apply("frameworkOptions"),a=l==="PRODUCTION",T=await i.apply("env"),V=await i.apply("logLevel",void 0),W=await i.apply("previewHead"),z=await i.apply("previewBody"),U=await i.apply("previewMainTemplate"),O=await i.apply("core"),j=typeof O.builder=="string"?{}:((_=O.builder)==null?void 0:_.options)||{},G=await i.apply("docs"),S=[...await i.apply("previewAnnotations",[],e),(0,o.loadPreviewOrConfigFile)(e)].filter(Boolean),y=await i.apply("entries",[],e),g=process.cwd(),h=(0,o.normalizeStories)(await i.apply("stories",[],e),{configDir:e.configDir,workingDir:g}),m={};if(v!=null&&v.storyStoreV7){let p="storybook-stories.js",P=s.default.resolve(s.default.join(g,p)),u=!!j.lazyCompilation&&!a;m[P]=(0,k.toImportFn)(h,{needPipelinedImport:u});let d=s.default.resolve(s.default.join(g,"storybook-config-entry.js"));m[d]=(0,o.handlebars)(await(0,o.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars")),{storiesFilename:p,previewAnnotations:S}).replace(/\\/g,"\\\\"),y.push(d)}else{let p=s.default.resolve(s.default.join(g,"storybook-init-framework-entry.js"));m[p]=`import '${E}';`,y.push(p);let P=await(0,o.readTemplate)(s.default.join(__dirname,"..","..","templates","virtualModuleEntry.template.js"));if(S.forEach(u=>{let d=C["@storybook/client-api"],X=C["@storybook/client-logger"];m[`${u}-generated-config-entry.js`]=(0,o.interpolate)(P,{previewAnnotationFilename:u,clientApi:d,clientLogger:X}),y.push(`${u}-generated-config-entry.js`)}),h.length>0){let u=await(0,o.readTemplate)(s.default.join(__dirname,"..","..","templates","virtualModuleStory.template.js")),d=s.default.resolve(s.default.join(g,"generated-stories-entry.cjs"));m[d]=(0,o.interpolate)(u,{frameworkName:E}).replace("'{{stories}}'",h.map(k.toRequireContextString).join(",")),y.push(d)}}let J=w.check&&!w.skipBabel,K=w.checkOptions||{},Y=j.fsCache?{cache:{type:"filesystem"}}:{},Q=j.lazyCompilation&&!a?{lazyCompilation:{entries:!1}}:{};return{name:"preview",mode:a?"production":"development",bail:a,devtool:"cheap-module-source-map",entry:y,output:{path:s.default.resolve(process.cwd(),t),filename:a?"[name].[contenthash:8].iframe.bundle.js":"[name].iframe.bundle.js",publicPath:""},stats:{preset:"none",logging:"error"},watchOptions:{ignored:/node_modules/},ignoreWarnings:[{message:/export '\S+' was not found in 'global'/}],plugins:[Object.keys(m).length>0?new M.default(m):null,new q.default({filename:"iframe.html",chunksSortMode:"none",alwaysWriteToDisk:!0,inject:!1,template:U,templateParameters:{version:f.version,globals:{CONFIG_TYPE:l,LOGLEVEL:V,FRAMEWORK_OPTIONS:H,CHANNEL_OPTIONS:O.channelOptions,FEATURES:v,PREVIEW_URL:B,STORIES:h.map(p=>({...p,importPathMatcher:p.importPathMatcher.source})),DOCS_OPTIONS:G,SERVER_CHANNEL_URL:F},headHtmlSnippet:W,bodyHtmlSnippet:z},minify:{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!1,removeStyleLinkTypeAttributes:!0,useShortDoctype:!0}}),new c.DefinePlugin({...(0,o.stringifyProcessEnvs)(T),NODE_ENV:JSON.stringify(process.env.NODE_ENV)}),new c.ProvidePlugin({process:require.resolve("process/browser.js")}),a?null:new c.HotModuleReplacementPlugin,new D.default,n?null:new c.ProgressPlugin({}),J?new $.default(K):null].filter(Boolean),module:{rules:[{test:/\.m?js$/,type:"javascript/auto"},{test:/\.m?js$/,resolve:{fullySpecified:!1}},x(A,w),{test:/\.md$/,type:"asset/source"}]},resolve:{extensions:[".mjs",".js",".jsx",".ts",".tsx",".json",".cjs"],modules:["node_modules"].concat(T.NODE_PATH||[]),mainFields:["browser","module","main"].filter(Boolean),alias:C,fallback:{path:require.resolve("path-browserify"),assert:require.resolve("browser-assert"),util:require.resolve("util")},symlinks:!(0,o.isPreservingSymlinks)()},optimization:{splitChunks:{chunks:"all"},runtimeChunk:!0,sideEffects:!0,usedExports:a,moduleIds:"named",minimizer:a?[new L.default({parallel:!0,terserOptions:{sourceMap:!0,mangle:!1,keep_fnames:!0}})]:[]},performance:{hints:a?"warning":!1},...Y,experiments:{...Q}}};var ie=async(e,t)=>I(t),ae=async(e,t)=>{let n=[];return t.configType==="DEVELOPMENT"&&(n=n.concat(`${require.resolve("webpack-hot-middleware/client")}?reload=true&quiet=false&noInfo=${t.quiet}`)),n},le=async(e,t)=>({...e,overrides:[...(e==null?void 0:e.overrides)||[],{test:/\.(story|stories).*$/,plugins:[require.resolve("babel-plugin-named-exports-order")]}]}),pe=()=>require.resolve("babel-loader");0&&(module.exports={babel,babelLoaderRef,entries,webpack});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t}from"../chunk-HKSD7XQF.mjs";import o from"path";import{DefinePlugin as z,HotModuleReplacementPlugin as U,ProgressPlugin as G,ProvidePlugin as J}from"webpack";import K from"html-webpack-plugin";import Y from"case-sensitive-paths-webpack-plugin";import Q from"terser-webpack-plugin";import X from"webpack-virtual-modules";import Z from"fork-ts-checker-webpack-plugin";import{stringifyProcessEnvs as ee,handlebars as te,interpolate as T,normalizeStories as oe,readTemplate as w,loadPreviewOrConfigFile as re,isPreservingSymlinks as se,getFrameworkName as ne}from"@storybook/core-common";import{toRequireContextString as ie,toImportFn as ae}from"@storybook/core-webpack";import{getProjectRoot as W}from"@storybook/core-common";var E=(e,r)=>({test:r.skipBabel?/\.(mjs|jsx?)$/:/\.(mjs|tsx?|jsx?)$/,use:[{loader:t.resolve("babel-loader"),options:e}],include:[W()],exclude:/node_modules/});var h={global:o.dirname(t.resolve("global/package.json")),...["addons","api","store","channels","channel-postmessage","channel-websocket","components","core-events","router","theming","preview-web","client-api","client-logger"].reduce((e,r)=>({...e,[`@storybook/${r}`]:o.dirname(t.resolve(`@storybook/${r}/package.json`))}),{})},S=async e=>{let{outputDir:r=o.join(".","public"),quiet:c,packageJson:_,configType:v,presets:s,previewUrl:R,babelOptions:x,typescriptOptions:d,features:k,serverChannelUrl:N}=e,O=await ne(e),q=await s.apply("frameworkOptions"),n=v==="PRODUCTION",j=await s.apply("env"),D=await s.apply("logLevel",void 0),L=await s.apply("previewHead"),M=await s.apply("previewBody"),$=await s.apply("previewMainTemplate"),g=await s.apply("core"),f=typeof g.builder=="string"?{}:g.builder?.options||{},I=await s.apply("docs"),P=[...await s.apply("previewAnnotations",[],e),re(e)].filter(Boolean),m=await s.apply("entries",[],e),u=process.cwd(),y=oe(await s.apply("stories",[],e),{configDir:e.configDir,workingDir:u}),a={};if(k?.storyStoreV7){let i="storybook-stories.js",b=o.resolve(o.join(u,i)),l=!!f.lazyCompilation&&!n;a[b]=ae(y,{needPipelinedImport:l});let p=o.resolve(o.join(u,"storybook-config-entry.js"));a[p]=te(await w(t.resolve("@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars")),{storiesFilename:i,previewAnnotations:P}).replace(/\\/g,"\\\\"),m.push(p)}else{let i=o.resolve(o.join(u,"storybook-init-framework-entry.js"));a[i]=`import '${O}';`,m.push(i);let b=await w(o.join(__dirname,"..","..","templates","virtualModuleEntry.template.js"));if(P.forEach(l=>{let p=h["@storybook/client-api"],V=h["@storybook/client-logger"];a[`${l}-generated-config-entry.js`]=T(b,{previewAnnotationFilename:l,clientApi:p,clientLogger:V}),m.push(`${l}-generated-config-entry.js`)}),y.length>0){let l=await w(o.join(__dirname,"..","..","templates","virtualModuleStory.template.js")),p=o.resolve(o.join(u,"generated-stories-entry.cjs"));a[p]=T(l,{frameworkName:O}).replace("'{{stories}}'",y.map(ie).join(",")),m.push(p)}}let B=d.check&&!d.skipBabel,A=d.checkOptions||{},F=f.fsCache?{cache:{type:"filesystem"}}:{},H=f.lazyCompilation&&!n?{lazyCompilation:{entries:!1}}:{};return{name:"preview",mode:n?"production":"development",bail:n,devtool:"cheap-module-source-map",entry:m,output:{path:o.resolve(process.cwd(),r),filename:n?"[name].[contenthash:8].iframe.bundle.js":"[name].iframe.bundle.js",publicPath:""},stats:{preset:"none",logging:"error"},watchOptions:{ignored:/node_modules/},ignoreWarnings:[{message:/export '\S+' was not found in 'global'/}],plugins:[Object.keys(a).length>0?new X(a):null,new K({filename:"iframe.html",chunksSortMode:"none",alwaysWriteToDisk:!0,inject:!1,template:$,templateParameters:{version:_.version,globals:{CONFIG_TYPE:v,LOGLEVEL:D,FRAMEWORK_OPTIONS:q,CHANNEL_OPTIONS:g.channelOptions,FEATURES:k,PREVIEW_URL:R,STORIES:y.map(i=>({...i,importPathMatcher:i.importPathMatcher.source})),DOCS_OPTIONS:I,SERVER_CHANNEL_URL:N},headHtmlSnippet:L,bodyHtmlSnippet:M},minify:{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!1,removeStyleLinkTypeAttributes:!0,useShortDoctype:!0}}),new z({...ee(j),NODE_ENV:JSON.stringify("production")}),new J({process:t.resolve("process/browser.js")}),n?null:new U,new Y,c?null:new G({}),B?new Z(A):null].filter(Boolean),module:{rules:[{test:/\.m?js$/,type:"javascript/auto"},{test:/\.m?js$/,resolve:{fullySpecified:!1}},E(x,d),{test:/\.md$/,type:"asset/source"}]},resolve:{extensions:[".mjs",".js",".jsx",".ts",".tsx",".json",".cjs"],modules:["node_modules"].concat(j.NODE_PATH||[]),mainFields:["browser","module","main"].filter(Boolean),alias:h,fallback:{path:t.resolve("path-browserify"),assert:t.resolve("browser-assert"),util:t.resolve("util")},symlinks:!se()},optimization:{splitChunks:{chunks:"all"},runtimeChunk:!0,sideEffects:!0,usedExports:n,moduleIds:"named",minimizer:n?[new Q({parallel:!0,terserOptions:{sourceMap:!0,mangle:!1,keep_fnames:!0}})]:[]},performance:{hints:n?"warning":!1},...F,experiments:{...H}}};var Oe=async(e,r)=>S(r),je=async(e,r)=>{let c=[];return r.configType==="DEVELOPMENT"&&(c=c.concat(`${t.resolve("webpack-hot-middleware/client")}?reload=true&quiet=false&noInfo=${r.quiet}`)),c},Pe=async(e,r)=>({...e,overrides:[...e?.overrides||[],{test:/\.(story|stories).*$/,plugins:[t.resolve("babel-plugin-named-exports-order")]}]}),Ce=()=>t.resolve("babel-loader");export{Pe as babel,Ce as babelLoaderRef,je as entries,Oe as webpack};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/builder-webpack5",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.40",
|
|
4
4
|
"description": "Storybook framework-agnostic API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -19,9 +19,28 @@
|
|
|
19
19
|
"url": "https://opencollective.com/storybook"
|
|
20
20
|
},
|
|
21
21
|
"license": "MIT",
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"require": "./dist/index.js",
|
|
25
|
+
"import": "./dist/index.mjs",
|
|
26
|
+
"types": "./dist/index.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./presets/custom-webpack-preset.js": {
|
|
29
|
+
"require": "./presets/custom-webpack-preset.js",
|
|
30
|
+
"import": "./presets/custom-webpack-preset.mjs",
|
|
31
|
+
"types": "./presets/custom-webpack-preset.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./presets/preview-preset.js": {
|
|
34
|
+
"require": "./presets/preview-preset.js",
|
|
35
|
+
"import": "./presets/preview-preset.mjs",
|
|
36
|
+
"types": "./presets/preview-preset.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./templates/virtualModuleModernEntry.js.handlebars": "./templates/virtualModuleModernEntry.js.handlebars",
|
|
39
|
+
"./package.json": "./package.json"
|
|
40
|
+
},
|
|
41
|
+
"main": "dist/index.js",
|
|
42
|
+
"module": "dist/index.mjs",
|
|
43
|
+
"types": "dist/index.d.ts",
|
|
25
44
|
"files": [
|
|
26
45
|
"dist/**/*",
|
|
27
46
|
"templates/**/*",
|
|
@@ -30,26 +49,26 @@
|
|
|
30
49
|
],
|
|
31
50
|
"scripts": {
|
|
32
51
|
"check": "../../../scripts/node_modules/.bin/tsc --noEmit",
|
|
33
|
-
"prep": "
|
|
52
|
+
"prep": "../../../scripts/prepare/bundle.ts"
|
|
34
53
|
},
|
|
35
54
|
"dependencies": {
|
|
36
55
|
"@babel/core": "^7.12.10",
|
|
37
|
-
"@storybook/addons": "7.0.0-alpha.
|
|
38
|
-
"@storybook/api": "7.0.0-alpha.
|
|
39
|
-
"@storybook/channel-postmessage": "7.0.0-alpha.
|
|
40
|
-
"@storybook/channel-websocket": "7.0.0-alpha.
|
|
41
|
-
"@storybook/channels": "7.0.0-alpha.
|
|
42
|
-
"@storybook/client-api": "7.0.0-alpha.
|
|
43
|
-
"@storybook/client-logger": "7.0.0-alpha.
|
|
44
|
-
"@storybook/components": "7.0.0-alpha.
|
|
45
|
-
"@storybook/core-common": "7.0.0-alpha.
|
|
46
|
-
"@storybook/core-events": "7.0.0-alpha.
|
|
47
|
-
"@storybook/core-webpack": "7.0.0-alpha.
|
|
48
|
-
"@storybook/node-logger": "7.0.0-alpha.
|
|
49
|
-
"@storybook/preview-web": "7.0.0-alpha.
|
|
50
|
-
"@storybook/router": "7.0.0-alpha.
|
|
51
|
-
"@storybook/store": "7.0.0-alpha.
|
|
52
|
-
"@storybook/theming": "7.0.0-alpha.
|
|
56
|
+
"@storybook/addons": "7.0.0-alpha.40",
|
|
57
|
+
"@storybook/api": "7.0.0-alpha.40",
|
|
58
|
+
"@storybook/channel-postmessage": "7.0.0-alpha.40",
|
|
59
|
+
"@storybook/channel-websocket": "7.0.0-alpha.40",
|
|
60
|
+
"@storybook/channels": "7.0.0-alpha.40",
|
|
61
|
+
"@storybook/client-api": "7.0.0-alpha.40",
|
|
62
|
+
"@storybook/client-logger": "7.0.0-alpha.40",
|
|
63
|
+
"@storybook/components": "7.0.0-alpha.40",
|
|
64
|
+
"@storybook/core-common": "7.0.0-alpha.40",
|
|
65
|
+
"@storybook/core-events": "7.0.0-alpha.40",
|
|
66
|
+
"@storybook/core-webpack": "7.0.0-alpha.40",
|
|
67
|
+
"@storybook/node-logger": "7.0.0-alpha.40",
|
|
68
|
+
"@storybook/preview-web": "7.0.0-alpha.40",
|
|
69
|
+
"@storybook/router": "7.0.0-alpha.40",
|
|
70
|
+
"@storybook/store": "7.0.0-alpha.40",
|
|
71
|
+
"@storybook/theming": "7.0.0-alpha.40",
|
|
53
72
|
"@types/node": "^16.0.0",
|
|
54
73
|
"@types/semver": "^7.3.4",
|
|
55
74
|
"babel-loader": "^8.2.5",
|
|
@@ -93,5 +112,13 @@
|
|
|
93
112
|
"publishConfig": {
|
|
94
113
|
"access": "public"
|
|
95
114
|
},
|
|
96
|
-
"
|
|
115
|
+
"bundler": {
|
|
116
|
+
"entries": [
|
|
117
|
+
"./src/index.ts",
|
|
118
|
+
"./src/presets/custom-webpack-preset.ts",
|
|
119
|
+
"./src/presets/preview-preset.ts"
|
|
120
|
+
],
|
|
121
|
+
"platform": "node"
|
|
122
|
+
},
|
|
123
|
+
"gitHead": "8f6d8629f1ad7e776c39e2c7621f4a0d538aa93c"
|
|
97
124
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* eslint-disable import/no-unresolved */
|
|
2
|
+
import {
|
|
3
|
+
addDecorator,
|
|
4
|
+
addParameters,
|
|
5
|
+
addLoader,
|
|
6
|
+
addArgs,
|
|
7
|
+
addArgTypes,
|
|
8
|
+
addStepRunner,
|
|
9
|
+
addArgsEnhancer,
|
|
10
|
+
addArgTypesEnhancer,
|
|
11
|
+
setGlobalRender,
|
|
12
|
+
} from '{{clientApi}}';
|
|
13
|
+
import * as previewAnnotations from '{{previewAnnotationFilename}}';
|
|
14
|
+
|
|
15
|
+
Object.keys(previewAnnotations).forEach((key) => {
|
|
16
|
+
const value = previewAnnotations[key];
|
|
17
|
+
switch (key) {
|
|
18
|
+
case 'args': {
|
|
19
|
+
return addArgs(value);
|
|
20
|
+
}
|
|
21
|
+
case 'argTypes': {
|
|
22
|
+
return addArgTypes(value);
|
|
23
|
+
}
|
|
24
|
+
case 'decorators': {
|
|
25
|
+
return value.forEach((decorator) => addDecorator(decorator, false));
|
|
26
|
+
}
|
|
27
|
+
case 'loaders': {
|
|
28
|
+
return value.forEach((loader) => addLoader(loader, false));
|
|
29
|
+
}
|
|
30
|
+
case 'parameters': {
|
|
31
|
+
return addParameters({ ...value }, false);
|
|
32
|
+
}
|
|
33
|
+
case 'argTypesEnhancers': {
|
|
34
|
+
return value.forEach((enhancer) => addArgTypesEnhancer(enhancer));
|
|
35
|
+
}
|
|
36
|
+
case 'argsEnhancers': {
|
|
37
|
+
return value.forEach((enhancer) => addArgsEnhancer(enhancer));
|
|
38
|
+
}
|
|
39
|
+
case 'render': {
|
|
40
|
+
return setGlobalRender(value);
|
|
41
|
+
}
|
|
42
|
+
case 'globals':
|
|
43
|
+
case 'globalTypes': {
|
|
44
|
+
const v = {};
|
|
45
|
+
v[key] = value;
|
|
46
|
+
return addParameters(v, false);
|
|
47
|
+
}
|
|
48
|
+
case '__namedExportsOrder':
|
|
49
|
+
case 'decorateStory':
|
|
50
|
+
case 'renderToDOM': {
|
|
51
|
+
return null; // This key is not handled directly in v6 mode.
|
|
52
|
+
}
|
|
53
|
+
case 'runStep': {
|
|
54
|
+
return addStepRunner(value);
|
|
55
|
+
}
|
|
56
|
+
default: {
|
|
57
|
+
return console.log(
|
|
58
|
+
`Unknown key '${key}' exported by preview annotation file '{{previewAnnotationFilename}}'`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|