@storybook/builder-webpack5 6.5.0-alpha.9 → 6.5.0-beta.2
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/dist/cjs/index.js +102 -42
- package/dist/cjs/presets/custom-webpack-preset.js +2 -2
- package/dist/cjs/presets/preview-preset.js +10 -2
- package/dist/cjs/preview/babel-loader-preview.js +1 -1
- package/dist/cjs/preview/base-webpack.config.js +14 -6
- package/dist/cjs/preview/iframe-webpack.config.js +14 -9
- package/dist/cjs/preview/virtualModuleEntry.template.js +3 -2
- package/dist/esm/index.js +91 -32
- package/dist/esm/presets/preview-preset.js +5 -0
- package/dist/esm/preview/base-webpack.config.js +14 -6
- package/dist/esm/preview/iframe-webpack.config.js +14 -9
- package/dist/esm/preview/virtualModuleEntry.template.js +3 -2
- package/dist/modern/index.js +91 -32
- package/dist/modern/presets/preview-preset.js +5 -0
- package/dist/modern/preview/base-webpack.config.js +14 -6
- package/dist/modern/preview/iframe-webpack.config.js +14 -9
- package/dist/modern/preview/virtualModuleEntry.template.js +3 -2
- package/dist/ts3.4/index.d.ts +4 -3
- package/dist/ts3.4/presets/preview-preset.d.ts +1 -0
- package/dist/ts3.9/index.d.ts +5 -4
- package/dist/ts3.9/presets/preview-preset.d.ts +1 -0
- package/dist/ts3.9/preview/iframe-webpack.config.d.ts +2 -2
- package/package.json +23 -42
- package/{dist/cjs/preview → templates}/virtualModuleModernEntry.js.handlebars +4 -4
- package/dist/esm/preview/virtualModuleModernEntry.js.handlebars +0 -45
- package/dist/modern/preview/virtualModuleModernEntry.js.handlebars +0 -45
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.start = exports.overridePresets = exports.getConfig = exports.executor = exports.corePresets = exports.build = exports.bail = void 0;
|
|
7
7
|
|
|
8
8
|
require("core-js/modules/es.promise.js");
|
|
9
9
|
|
|
@@ -19,18 +19,31 @@ var _coreCommon = require("@storybook/core-common");
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
22
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
23
|
|
|
24
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
25
|
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
27
|
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
29
|
|
|
30
30
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
31
|
|
|
32
32
|
var compilation;
|
|
33
33
|
var reject;
|
|
34
|
+
var executor = {
|
|
35
|
+
get: async function (options) {
|
|
36
|
+
var _await$options$preset;
|
|
37
|
+
|
|
38
|
+
var version = (await options.presets.apply('webpackVersion')) || '5';
|
|
39
|
+
var webpackInstance = ((_await$options$preset = await options.presets.apply('webpackInstance')) === null || _await$options$preset === void 0 ? void 0 : _await$options$preset.default) || _webpack.default;
|
|
40
|
+
(0, _coreCommon.checkWebpackVersion)({
|
|
41
|
+
version: version
|
|
42
|
+
}, '5', 'builder-webpack5');
|
|
43
|
+
return webpackInstance;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.executor = executor;
|
|
34
47
|
|
|
35
48
|
var getConfig = async function (options) {
|
|
36
49
|
var presets = options.presets;
|
|
@@ -47,21 +60,51 @@ var getConfig = async function (options) {
|
|
|
47
60
|
};
|
|
48
61
|
|
|
49
62
|
exports.getConfig = getConfig;
|
|
50
|
-
var
|
|
51
|
-
get: async function (options) {
|
|
52
|
-
var _await$options$preset;
|
|
63
|
+
var asyncIterator;
|
|
53
64
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
var bail = async function () {
|
|
66
|
+
if (asyncIterator) {
|
|
67
|
+
try {
|
|
68
|
+
// we tell the builder (that started) to stop ASAP and wait
|
|
69
|
+
await asyncIterator.throw(new Error());
|
|
70
|
+
} catch (e) {//
|
|
71
|
+
}
|
|
60
72
|
}
|
|
73
|
+
|
|
74
|
+
if (reject) {
|
|
75
|
+
reject();
|
|
76
|
+
} // we wait for the compiler to finish it's work, so it's command-line output doesn't interfere
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
return new Promise(function (res, rej) {
|
|
80
|
+
if (process && compilation) {
|
|
81
|
+
try {
|
|
82
|
+
compilation.close(function () {
|
|
83
|
+
return res();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
_nodeLogger.logger.warn('Force closed preview build');
|
|
87
|
+
} catch (err) {
|
|
88
|
+
_nodeLogger.logger.warn('Unable to close preview build!');
|
|
89
|
+
|
|
90
|
+
res();
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
res();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
61
96
|
};
|
|
62
|
-
|
|
97
|
+
/**
|
|
98
|
+
* This function is a generator so that we can abort it mid process
|
|
99
|
+
* in case of failure coming from other processes e.g. preview builder
|
|
100
|
+
*
|
|
101
|
+
* I am sorry for making you read about generators today :')
|
|
102
|
+
*/
|
|
103
|
+
|
|
63
104
|
|
|
64
|
-
|
|
105
|
+
exports.bail = bail;
|
|
106
|
+
|
|
107
|
+
var starter = async function* starterGeneratorFn({
|
|
65
108
|
startTime: startTime,
|
|
66
109
|
options: options,
|
|
67
110
|
router: router
|
|
@@ -69,7 +112,9 @@ var start = async function ({
|
|
|
69
112
|
var _config$output;
|
|
70
113
|
|
|
71
114
|
var webpackInstance = await executor.get(options);
|
|
115
|
+
yield;
|
|
72
116
|
var config = await getConfig(options);
|
|
117
|
+
yield;
|
|
73
118
|
var compiler = webpackInstance(config);
|
|
74
119
|
|
|
75
120
|
if (!compiler) {
|
|
@@ -101,6 +146,7 @@ var start = async function ({
|
|
|
101
146
|
handler = _await$useProgressRep.handler,
|
|
102
147
|
modulesCount = _await$useProgressRep.modulesCount;
|
|
103
148
|
|
|
149
|
+
yield;
|
|
104
150
|
new _webpack.ProgressPlugin({
|
|
105
151
|
handler: handler,
|
|
106
152
|
modulesCount: modulesCount
|
|
@@ -116,6 +162,7 @@ var start = async function ({
|
|
|
116
162
|
compilation.waitUntilValid(ready);
|
|
117
163
|
reject = stop;
|
|
118
164
|
});
|
|
165
|
+
yield;
|
|
119
166
|
|
|
120
167
|
if (!stats) {
|
|
121
168
|
throw new Error('no stats after building preview');
|
|
@@ -131,38 +178,25 @@ var start = async function ({
|
|
|
131
178
|
totalTime: process.hrtime(startTime)
|
|
132
179
|
};
|
|
133
180
|
};
|
|
181
|
+
/**
|
|
182
|
+
* This function is a generator so that we can abort it mid process
|
|
183
|
+
* in case of failure coming from other processes e.g. manager builder
|
|
184
|
+
*
|
|
185
|
+
* I am sorry for making you read about generators today :')
|
|
186
|
+
*/
|
|
134
187
|
|
|
135
|
-
exports.start = start;
|
|
136
|
-
|
|
137
|
-
var bail = function (e) {
|
|
138
|
-
if (reject) {
|
|
139
|
-
reject();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (process) {
|
|
143
|
-
try {
|
|
144
|
-
compilation.close();
|
|
145
|
-
|
|
146
|
-
_nodeLogger.logger.warn('Force closed preview build');
|
|
147
|
-
} catch (err) {
|
|
148
|
-
_nodeLogger.logger.warn('Unable to close preview build!');
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
throw e;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
exports.bail = bail;
|
|
156
188
|
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
189
|
+
var builder = async function* builderGeneratorFn({
|
|
190
|
+
startTime: startTime,
|
|
191
|
+
options: options
|
|
160
192
|
}) {
|
|
161
193
|
var webpackInstance = await executor.get(options);
|
|
194
|
+
yield;
|
|
162
195
|
|
|
163
196
|
_nodeLogger.logger.info('=> Compiling preview..');
|
|
164
197
|
|
|
165
198
|
var config = await getConfig(options);
|
|
199
|
+
yield;
|
|
166
200
|
return new Promise(function (succeed, fail) {
|
|
167
201
|
var compiler = webpackInstance(config);
|
|
168
202
|
compiler.run(function (error, stats) {
|
|
@@ -181,10 +215,10 @@ var build = async function ({
|
|
|
181
215
|
}
|
|
182
216
|
|
|
183
217
|
if (stats && (stats.hasErrors() || stats.hasWarnings())) {
|
|
184
|
-
var _stats$toJson = stats.toJson({
|
|
218
|
+
var _stats$toJson = stats.toJson(typeof config.stats === 'string' ? config.stats : _objectSpread({
|
|
185
219
|
warnings: true,
|
|
186
220
|
errors: true
|
|
187
|
-
}),
|
|
221
|
+
}, config.stats)),
|
|
188
222
|
_stats$toJson$warning = _stats$toJson.warnings,
|
|
189
223
|
warnings = _stats$toJson$warning === void 0 ? [] : _stats$toJson$warning,
|
|
190
224
|
_stats$toJson$errors = _stats$toJson.errors,
|
|
@@ -229,6 +263,32 @@ var build = async function ({
|
|
|
229
263
|
});
|
|
230
264
|
};
|
|
231
265
|
|
|
266
|
+
var start = async function (options) {
|
|
267
|
+
asyncIterator = starter(options);
|
|
268
|
+
var result;
|
|
269
|
+
|
|
270
|
+
do {
|
|
271
|
+
// eslint-disable-next-line no-await-in-loop
|
|
272
|
+
result = await asyncIterator.next();
|
|
273
|
+
} while (!result.done);
|
|
274
|
+
|
|
275
|
+
return result.value;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
exports.start = start;
|
|
279
|
+
|
|
280
|
+
var build = async function (options) {
|
|
281
|
+
asyncIterator = builder(options);
|
|
282
|
+
var result;
|
|
283
|
+
|
|
284
|
+
do {
|
|
285
|
+
// eslint-disable-next-line no-await-in-loop
|
|
286
|
+
result = await asyncIterator.next();
|
|
287
|
+
} while (!result.done);
|
|
288
|
+
|
|
289
|
+
return result.value;
|
|
290
|
+
};
|
|
291
|
+
|
|
232
292
|
exports.build = build;
|
|
233
293
|
var corePresets = [require.resolve('./presets/preview-preset.js')];
|
|
234
294
|
exports.corePresets = corePresets;
|
|
@@ -22,9 +22,9 @@ var _baseWebpack = require("../preview/base-webpack.config");
|
|
|
22
22
|
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
24
|
|
|
25
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
26
|
|
|
27
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
28
|
|
|
29
29
|
async function webpack(config, options) {
|
|
30
30
|
// @ts-ignore
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.entries = exports.
|
|
6
|
+
exports.webpack = exports.entries = exports.babel = void 0;
|
|
7
7
|
|
|
8
8
|
require("core-js/modules/es.promise.js");
|
|
9
9
|
|
|
@@ -30,4 +30,12 @@ var entries = async function (_, options) {
|
|
|
30
30
|
return result;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
exports.entries = entries;
|
|
33
|
+
exports.entries = entries;
|
|
34
|
+
|
|
35
|
+
var babel = async function (config, options) {
|
|
36
|
+
// FIXME: Add this to overrides to only apply to story files
|
|
37
|
+
config.plugins.push('babel-plugin-named-exports-order');
|
|
38
|
+
return config;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
exports.babel = babel;
|
|
@@ -9,14 +9,14 @@ require("core-js/modules/es.promise.js");
|
|
|
9
9
|
|
|
10
10
|
var _nodeLogger = require("@storybook/node-logger");
|
|
11
11
|
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
13
|
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
15
|
|
|
16
16
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
17
|
|
|
18
18
|
async function createDefaultWebpackConfig(storybookBaseConfig, options) {
|
|
19
|
-
var
|
|
19
|
+
var _storybookBaseConfig$;
|
|
20
20
|
|
|
21
21
|
if (options.presetsList.some(function (preset) {
|
|
22
22
|
return /@storybook(\/|\\)preset-create-react-app/.test(typeof preset === 'string' ? preset : preset.name);
|
|
@@ -50,12 +50,18 @@ async function createDefaultWebpackConfig(storybookBaseConfig, options) {
|
|
|
50
50
|
|
|
51
51
|
var isProd = storybookBaseConfig.mode !== 'development';
|
|
52
52
|
var coreOptions = await options.presets.apply('core');
|
|
53
|
-
var
|
|
53
|
+
var builderOptions = coreOptions.builder.options;
|
|
54
|
+
var cacheConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.fsCache ? {
|
|
54
55
|
cache: {
|
|
55
56
|
type: 'filesystem'
|
|
56
57
|
}
|
|
57
58
|
} : {};
|
|
58
|
-
|
|
59
|
+
var lazyCompilationConfig = builderOptions !== null && builderOptions !== void 0 && builderOptions.lazyCompilation && !isProd ? {
|
|
60
|
+
lazyCompilation: {
|
|
61
|
+
entries: false
|
|
62
|
+
}
|
|
63
|
+
} : {};
|
|
64
|
+
return _objectSpread(_objectSpread(_objectSpread({}, storybookBaseConfig), {}, {
|
|
59
65
|
module: _objectSpread(_objectSpread({}, storybookBaseConfig.module), {}, {
|
|
60
66
|
rules: [...storybookBaseConfig.module.rules, cssLoaders, {
|
|
61
67
|
test: /\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,
|
|
@@ -82,5 +88,7 @@ async function createDefaultWebpackConfig(storybookBaseConfig, options) {
|
|
|
82
88
|
assert: false
|
|
83
89
|
})
|
|
84
90
|
})
|
|
85
|
-
}, cacheConfig)
|
|
91
|
+
}, cacheConfig), {}, {
|
|
92
|
+
experiments: _objectSpread(_objectSpread({}, storybookBaseConfig.experiments), lazyCompilationConfig)
|
|
93
|
+
});
|
|
86
94
|
}
|
|
@@ -31,9 +31,9 @@ var _useBaseTsSupport = require("./useBaseTsSupport");
|
|
|
31
31
|
|
|
32
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
33
|
|
|
34
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
34
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
35
|
|
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
36
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
37
|
|
|
38
38
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
39
39
|
|
|
@@ -85,7 +85,7 @@ var _default = async function _default(options) {
|
|
|
85
85
|
|
|
86
86
|
var configEntryPath = _path.default.resolve(_path.default.join(workingDir, 'storybook-config-entry.js'));
|
|
87
87
|
|
|
88
|
-
virtualModuleMapping[configEntryPath] = (0, _coreCommon.handlebars)(await (0, _coreCommon.readTemplate)(
|
|
88
|
+
virtualModuleMapping[configEntryPath] = (0, _coreCommon.handlebars)(await (0, _coreCommon.readTemplate)(require.resolve('@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars')), {
|
|
89
89
|
storiesFilename: storiesFilename,
|
|
90
90
|
configs: configs
|
|
91
91
|
} // We need to double escape `\` for webpack. We may have some in windows paths
|
|
@@ -100,7 +100,9 @@ var _default = async function _default(options) {
|
|
|
100
100
|
var entryTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleEntry.template.js'));
|
|
101
101
|
configs.forEach(function (configFilename) {
|
|
102
102
|
var clientApi = storybookPaths['@storybook/client-api'];
|
|
103
|
-
var clientLogger = storybookPaths['@storybook/client-logger'];
|
|
103
|
+
var clientLogger = storybookPaths['@storybook/client-logger']; // NOTE: although this file is also from the `dist/cjs` directory, it is actually a ESM
|
|
104
|
+
// file, see https://github.com/storybookjs/storybook/pull/16727#issuecomment-986485173
|
|
105
|
+
|
|
104
106
|
virtualModuleMapping[`${configFilename}-generated-config-entry.js`] = (0, _coreCommon.interpolate)(entryTemplate, {
|
|
105
107
|
configFilename: configFilename,
|
|
106
108
|
clientApi: clientApi,
|
|
@@ -110,9 +112,11 @@ var _default = async function _default(options) {
|
|
|
110
112
|
});
|
|
111
113
|
|
|
112
114
|
if (stories.length > 0) {
|
|
113
|
-
var storyTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleStory.template.js'));
|
|
115
|
+
var storyTemplate = await (0, _coreCommon.readTemplate)(_path.default.join(__dirname, 'virtualModuleStory.template.js')); // NOTE: this file has a `.cjs` extension as it is a CJS file (from `dist/cjs`) and runs
|
|
116
|
+
// in the user's webpack mode, which may be strict about the use of require/import.
|
|
117
|
+
// See https://github.com/storybookjs/storybook/issues/14877
|
|
114
118
|
|
|
115
|
-
var _storiesFilename = _path.default.resolve(_path.default.join(workingDir, `generated-stories-entry.
|
|
119
|
+
var _storiesFilename = _path.default.resolve(_path.default.join(workingDir, `generated-stories-entry.cjs`));
|
|
116
120
|
|
|
117
121
|
virtualModuleMapping[_storiesFilename] = (0, _coreCommon.interpolate)(storyTemplate, {
|
|
118
122
|
frameworkImportPath: frameworkImportPath
|
|
@@ -182,7 +186,7 @@ var _default = async function _default(options) {
|
|
|
182
186
|
}), new _webpack.DefinePlugin(_objectSpread(_objectSpread({}, (0, _coreCommon.stringifyProcessEnvs)(envs)), {}, {
|
|
183
187
|
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
|
|
184
188
|
})), new _webpack.ProvidePlugin({
|
|
185
|
-
process: 'process/browser.js'
|
|
189
|
+
process: require.resolve('process/browser.js')
|
|
186
190
|
}), isProd ? null : new _webpack.HotModuleReplacementPlugin(), new _caseSensitivePathsWebpackPlugin.default(), quiet ? null : new _webpack.ProgressPlugin({}), shouldCheckTs ? new _forkTsCheckerWebpackPlugin.default(tsCheckOptions) : null].filter(Boolean),
|
|
187
191
|
module: {
|
|
188
192
|
rules: [babelLoader, (0, _coreCommon.es6Transpiler)(), {
|
|
@@ -199,7 +203,8 @@ var _default = async function _default(options) {
|
|
|
199
203
|
'react-dom': _path.default.dirname(require.resolve('react-dom/package.json'))
|
|
200
204
|
}),
|
|
201
205
|
fallback: {
|
|
202
|
-
path: require.resolve('path-browserify')
|
|
206
|
+
path: require.resolve('path-browserify'),
|
|
207
|
+
assert: require.resolve('browser-assert')
|
|
203
208
|
}
|
|
204
209
|
},
|
|
205
210
|
optimization: {
|
|
@@ -208,7 +213,7 @@ var _default = async function _default(options) {
|
|
|
208
213
|
},
|
|
209
214
|
runtimeChunk: true,
|
|
210
215
|
sideEffects: true,
|
|
211
|
-
usedExports:
|
|
216
|
+
usedExports: isProd,
|
|
212
217
|
moduleIds: 'named',
|
|
213
218
|
minimizer: isProd ? [new _terserWebpackPlugin.default({
|
|
214
219
|
parallel: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
|
|
@@ -67,6 +67,7 @@ Object.keys(config).forEach(function (key) {
|
|
|
67
67
|
return addParameters(v, false);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
case '__namedExportsOrder':
|
|
70
71
|
case 'decorateStory':
|
|
71
72
|
case 'renderToDOM':
|
|
72
73
|
{
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
|
|
@@ -12,6 +12,18 @@ import { logger } from '@storybook/node-logger';
|
|
|
12
12
|
import { useProgressReporting, checkWebpackVersion } from '@storybook/core-common';
|
|
13
13
|
var compilation;
|
|
14
14
|
var reject;
|
|
15
|
+
export var executor = {
|
|
16
|
+
get: async function (options) {
|
|
17
|
+
var _await$options$preset;
|
|
18
|
+
|
|
19
|
+
var version = (await options.presets.apply('webpackVersion')) || '5';
|
|
20
|
+
var webpackInstance = ((_await$options$preset = await options.presets.apply('webpackInstance')) === null || _await$options$preset === void 0 ? void 0 : _await$options$preset.default) || webpack;
|
|
21
|
+
checkWebpackVersion({
|
|
22
|
+
version: version
|
|
23
|
+
}, '5', 'builder-webpack5');
|
|
24
|
+
return webpackInstance;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
15
27
|
export var getConfig = async function (options) {
|
|
16
28
|
var presets = options.presets;
|
|
17
29
|
var typescriptOptions = await presets.apply('typescript', {}, options);
|
|
@@ -25,19 +37,45 @@ export var getConfig = async function (options) {
|
|
|
25
37
|
[`${options.framework}Options`]: frameworkOptions
|
|
26
38
|
}));
|
|
27
39
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}, '5', 'builder-webpack5');
|
|
37
|
-
return webpackInstance;
|
|
40
|
+
var asyncIterator;
|
|
41
|
+
export var bail = async function () {
|
|
42
|
+
if (asyncIterator) {
|
|
43
|
+
try {
|
|
44
|
+
// we tell the builder (that started) to stop ASAP and wait
|
|
45
|
+
await asyncIterator.throw(new Error());
|
|
46
|
+
} catch (e) {//
|
|
47
|
+
}
|
|
38
48
|
}
|
|
49
|
+
|
|
50
|
+
if (reject) {
|
|
51
|
+
reject();
|
|
52
|
+
} // we wait for the compiler to finish it's work, so it's command-line output doesn't interfere
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
return new Promise(function (res, rej) {
|
|
56
|
+
if (process && compilation) {
|
|
57
|
+
try {
|
|
58
|
+
compilation.close(function () {
|
|
59
|
+
return res();
|
|
60
|
+
});
|
|
61
|
+
logger.warn('Force closed preview build');
|
|
62
|
+
} catch (err) {
|
|
63
|
+
logger.warn('Unable to close preview build!');
|
|
64
|
+
res();
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
res();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
39
70
|
};
|
|
40
|
-
|
|
71
|
+
/**
|
|
72
|
+
* This function is a generator so that we can abort it mid process
|
|
73
|
+
* in case of failure coming from other processes e.g. preview builder
|
|
74
|
+
*
|
|
75
|
+
* I am sorry for making you read about generators today :')
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
var starter = async function* starterGeneratorFn({
|
|
41
79
|
startTime: startTime,
|
|
42
80
|
options: options,
|
|
43
81
|
router: router
|
|
@@ -45,7 +83,9 @@ export var start = async function ({
|
|
|
45
83
|
var _config$output;
|
|
46
84
|
|
|
47
85
|
var webpackInstance = await executor.get(options);
|
|
86
|
+
yield;
|
|
48
87
|
var config = await getConfig(options);
|
|
88
|
+
yield;
|
|
49
89
|
var compiler = webpackInstance(config);
|
|
50
90
|
|
|
51
91
|
if (!compiler) {
|
|
@@ -75,6 +115,7 @@ export var start = async function ({
|
|
|
75
115
|
handler = _await$useProgressRep.handler,
|
|
76
116
|
modulesCount = _await$useProgressRep.modulesCount;
|
|
77
117
|
|
|
118
|
+
yield;
|
|
78
119
|
new ProgressPlugin({
|
|
79
120
|
handler: handler,
|
|
80
121
|
modulesCount: modulesCount
|
|
@@ -90,6 +131,7 @@ export var start = async function ({
|
|
|
90
131
|
compilation.waitUntilValid(ready);
|
|
91
132
|
reject = stop;
|
|
92
133
|
});
|
|
134
|
+
yield;
|
|
93
135
|
|
|
94
136
|
if (!stats) {
|
|
95
137
|
throw new Error('no stats after building preview');
|
|
@@ -105,29 +147,23 @@ export var start = async function ({
|
|
|
105
147
|
totalTime: process.hrtime(startTime)
|
|
106
148
|
};
|
|
107
149
|
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
150
|
+
/**
|
|
151
|
+
* This function is a generator so that we can abort it mid process
|
|
152
|
+
* in case of failure coming from other processes e.g. manager builder
|
|
153
|
+
*
|
|
154
|
+
* I am sorry for making you read about generators today :')
|
|
155
|
+
*/
|
|
112
156
|
|
|
113
|
-
if (process) {
|
|
114
|
-
try {
|
|
115
|
-
compilation.close();
|
|
116
|
-
logger.warn('Force closed preview build');
|
|
117
|
-
} catch (err) {
|
|
118
|
-
logger.warn('Unable to close preview build!');
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
157
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
options: options,
|
|
126
|
-
startTime: startTime
|
|
158
|
+
var builder = async function* builderGeneratorFn({
|
|
159
|
+
startTime: startTime,
|
|
160
|
+
options: options
|
|
127
161
|
}) {
|
|
128
162
|
var webpackInstance = await executor.get(options);
|
|
163
|
+
yield;
|
|
129
164
|
logger.info('=> Compiling preview..');
|
|
130
165
|
var config = await getConfig(options);
|
|
166
|
+
yield;
|
|
131
167
|
return new Promise(function (succeed, fail) {
|
|
132
168
|
var compiler = webpackInstance(config);
|
|
133
169
|
compiler.run(function (error, stats) {
|
|
@@ -144,10 +180,10 @@ export var build = async function ({
|
|
|
144
180
|
}
|
|
145
181
|
|
|
146
182
|
if (stats && (stats.hasErrors() || stats.hasWarnings())) {
|
|
147
|
-
var _stats$toJson = stats.toJson({
|
|
183
|
+
var _stats$toJson = stats.toJson(typeof config.stats === 'string' ? config.stats : _objectSpread({
|
|
148
184
|
warnings: true,
|
|
149
185
|
errors: true
|
|
150
|
-
}),
|
|
186
|
+
}, config.stats)),
|
|
151
187
|
_stats$toJson$warning = _stats$toJson.warnings,
|
|
152
188
|
warnings = _stats$toJson$warning === void 0 ? [] : _stats$toJson$warning,
|
|
153
189
|
_stats$toJson$errors = _stats$toJson.errors,
|
|
@@ -191,5 +227,28 @@ export var build = async function ({
|
|
|
191
227
|
});
|
|
192
228
|
});
|
|
193
229
|
};
|
|
230
|
+
|
|
231
|
+
export var start = async function (options) {
|
|
232
|
+
asyncIterator = starter(options);
|
|
233
|
+
var result;
|
|
234
|
+
|
|
235
|
+
do {
|
|
236
|
+
// eslint-disable-next-line no-await-in-loop
|
|
237
|
+
result = await asyncIterator.next();
|
|
238
|
+
} while (!result.done);
|
|
239
|
+
|
|
240
|
+
return result.value;
|
|
241
|
+
};
|
|
242
|
+
export var build = async function (options) {
|
|
243
|
+
asyncIterator = builder(options);
|
|
244
|
+
var result;
|
|
245
|
+
|
|
246
|
+
do {
|
|
247
|
+
// eslint-disable-next-line no-await-in-loop
|
|
248
|
+
result = await asyncIterator.next();
|
|
249
|
+
} while (!result.done);
|
|
250
|
+
|
|
251
|
+
return result.value;
|
|
252
|
+
};
|
|
194
253
|
export var corePresets = [require.resolve('./presets/preview-preset.js')];
|
|
195
254
|
export var overridePresets = [require.resolve('./presets/custom-webpack-preset.js')];
|
|
@@ -14,4 +14,9 @@ export var entries = async function (_, options) {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
return result;
|
|
17
|
+
};
|
|
18
|
+
export var babel = async function (config, options) {
|
|
19
|
+
// FIXME: Add this to overrides to only apply to story files
|
|
20
|
+
config.plugins.push('babel-plugin-named-exports-order');
|
|
21
|
+
return config;
|
|
17
22
|
};
|