@storybook/cli 6.5.0-alpha.36 โ 6.5.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/dist/cjs/extract.js +7 -2
- package/dist/cjs/frameworks/angular/Header.stories.ts +8 -3
- package/dist/cjs/frameworks/angular/Page.stories.ts +12 -10
- package/dist/cjs/frameworks/angular/header.component.ts +30 -19
- package/dist/cjs/frameworks/angular/page.component.ts +13 -27
- package/dist/cjs/generators/REACT_SCRIPTS/index.js +9 -1
- package/dist/cjs/generators/baseGenerator.js +1 -1
- package/dist/cjs/initiate.js +2 -1
- package/dist/cjs/repro-generators/configs.js +9 -7
- package/dist/cjs/repro-generators/scripts.js +21 -12
- package/dist/cjs/repro.js +1 -0
- package/dist/cjs/versions.js +55 -55
- package/dist/esm/extract.js +7 -2
- package/dist/esm/frameworks/angular/Header.stories.ts +8 -3
- package/dist/esm/frameworks/angular/Page.stories.ts +12 -10
- package/dist/esm/frameworks/angular/header.component.ts +30 -19
- package/dist/esm/frameworks/angular/page.component.ts +13 -27
- package/dist/esm/generators/REACT_SCRIPTS/index.js +9 -1
- package/dist/esm/generators/baseGenerator.js +1 -1
- package/dist/esm/initiate.js +2 -1
- package/dist/esm/repro-generators/configs.js +9 -7
- package/dist/esm/repro-generators/scripts.js +21 -12
- package/dist/esm/repro.js +1 -0
- package/dist/esm/versions.js +55 -55
- package/dist/modern/extract.js +7 -2
- package/dist/modern/generators/REACT_SCRIPTS/index.js +9 -1
- package/dist/modern/generators/baseGenerator.js +1 -1
- package/dist/modern/initiate.js +2 -1
- package/dist/modern/repro-generators/configs.js +9 -7
- package/dist/modern/repro-generators/scripts.js +21 -12
- package/dist/modern/repro.js +1 -0
- package/dist/modern/versions.js +55 -55
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
2
|
import { User } from './User';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
@@ -6,9 +6,9 @@ import { User } from './User';
|
|
|
6
6
|
template: `<article>
|
|
7
7
|
<storybook-header
|
|
8
8
|
[user]="user"
|
|
9
|
-
(onLogout)="
|
|
10
|
-
(onLogin)="
|
|
11
|
-
(onCreateAccount)="
|
|
9
|
+
(onLogout)="doLogout()"
|
|
10
|
+
(onLogin)="doLogin()"
|
|
11
|
+
(onCreateAccount)="doCreateAccount()"
|
|
12
12
|
></storybook-header>
|
|
13
13
|
<section>
|
|
14
14
|
<h2>Pages in Storybook</h2>
|
|
@@ -61,31 +61,17 @@ import { User } from './User';
|
|
|
61
61
|
styleUrls: ['./page.css'],
|
|
62
62
|
})
|
|
63
63
|
export default class PageComponent {
|
|
64
|
-
@Input()
|
|
65
64
|
user: User | null = null;
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
doLogout() {
|
|
67
|
+
this.user = null;
|
|
68
|
+
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
doLogin() {
|
|
71
|
+
this.user = { name: 'Jane Doe' };
|
|
72
|
+
}
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
doCreateAccount() {
|
|
75
|
+
this.user = { name: 'Jane Doe' };
|
|
76
|
+
}
|
|
75
77
|
}
|
|
76
|
-
|
|
77
|
-
// export const Page = ({ user, onLogin, onLogout, onCreateAccount }) => (
|
|
78
|
-
// <article>
|
|
79
|
-
// <Header user={user} onLogin={onLogin} onLogout={onLogout} onCreateAccount={onCreateAccount} />
|
|
80
|
-
|
|
81
|
-
// );
|
|
82
|
-
// Page.propTypes = {
|
|
83
|
-
// user: PropTypes.shape({}),
|
|
84
|
-
// onLogin: PropTypes.func.isRequired,
|
|
85
|
-
// onLogout: PropTypes.func.isRequired,
|
|
86
|
-
// onCreateAccount: PropTypes.func.isRequired,
|
|
87
|
-
// };
|
|
88
|
-
|
|
89
|
-
// Page.defaultProps = {
|
|
90
|
-
// user: null,
|
|
91
|
-
// };
|
|
@@ -44,7 +44,15 @@ const generator = async (packageManager, npmOptions, options) => {
|
|
|
44
44
|
}) : options; // `@storybook/preset-create-react-app` has `@storybook/node-logger` as peerDep
|
|
45
45
|
|
|
46
46
|
const extraPackages = ['@storybook/node-logger'];
|
|
47
|
-
|
|
47
|
+
|
|
48
|
+
if (isCra5) {
|
|
49
|
+
extraPackages.push('webpack'); // Miscellaneous dependency used in `babel-preset-react-app` but not listed as dep there
|
|
50
|
+
|
|
51
|
+
extraPackages.push('babel-plugin-named-exports-order'); // Miscellaneous dependency to add to be sure Storybook + CRA is working fine with Yarn PnP mode
|
|
52
|
+
|
|
53
|
+
extraPackages.push('prop-types');
|
|
54
|
+
} // preset v3 is compat with older versions of CRA, otherwise let version float
|
|
55
|
+
|
|
48
56
|
|
|
49
57
|
const extraAddons = [`@storybook/preset-create-react-app${isCra5 ? '' : '@3'}`];
|
|
50
58
|
await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, updatedOptions, 'react', {
|
|
@@ -51,7 +51,7 @@ const builderDependencies = builder => {
|
|
|
51
51
|
|
|
52
52
|
const stripVersions = addons => addons.map(addon => (0, _jsPackageManager.getPackageDetails)(addon)[0]);
|
|
53
53
|
|
|
54
|
-
const hasInteractiveStories = framework => ['react'].includes(framework);
|
|
54
|
+
const hasInteractiveStories = framework => ['react', 'angular'].includes(framework);
|
|
55
55
|
|
|
56
56
|
async function baseGenerator(packageManager, npmOptions, {
|
|
57
57
|
language,
|
package/dist/esm/initiate.js
CHANGED
|
@@ -282,11 +282,12 @@ async function initiate(options, pkg) {
|
|
|
282
282
|
} catch (ex) {
|
|
283
283
|
done(ex.message);
|
|
284
284
|
process.exit(1);
|
|
285
|
+
return;
|
|
285
286
|
}
|
|
286
287
|
|
|
287
288
|
done();
|
|
288
289
|
await installStorybook(projectType, Object.assign({}, options, isEsm ? {
|
|
289
290
|
commonJs: true
|
|
290
291
|
} : undefined));
|
|
291
|
-
|
|
292
|
+
await (0, _automigrate.automigrate)();
|
|
292
293
|
}
|
|
@@ -14,16 +14,16 @@ const cra = {
|
|
|
14
14
|
framework: 'react',
|
|
15
15
|
name: 'cra',
|
|
16
16
|
version: 'latest',
|
|
17
|
-
generator: [// Force npm otherwise we have a mess between Yarn 1
|
|
18
|
-
'npx create-react-app@{{version}} {{appName}}
|
|
17
|
+
generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
|
|
18
|
+
'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}}', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
|
|
19
19
|
};
|
|
20
20
|
exports.cra = cra;
|
|
21
21
|
const cra_typescript = {
|
|
22
22
|
framework: 'react',
|
|
23
23
|
name: 'cra_typescript',
|
|
24
24
|
version: 'latest',
|
|
25
|
-
generator: [// Force npm otherwise we have a mess between Yarn 1
|
|
26
|
-
'npx create-react-app@{{version}} {{appName}} --template typescript
|
|
25
|
+
generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
|
|
26
|
+
'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}} --template typescript'].join(' && ')
|
|
27
27
|
};
|
|
28
28
|
exports.cra_typescript = cra_typescript;
|
|
29
29
|
const react = {
|
|
@@ -62,7 +62,7 @@ const baseAngular = {
|
|
|
62
62
|
framework: 'angular',
|
|
63
63
|
name: 'angular',
|
|
64
64
|
version: 'latest',
|
|
65
|
-
generator: `npx
|
|
65
|
+
generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
|
|
66
66
|
};
|
|
67
67
|
const angular10 = Object.assign({}, baseAngular, {
|
|
68
68
|
name: 'angular10',
|
|
@@ -117,7 +117,8 @@ exports.web_components_lit2 = web_components_lit2;
|
|
|
117
117
|
const vue = {
|
|
118
118
|
framework: 'vue',
|
|
119
119
|
name: 'vue',
|
|
120
|
-
|
|
120
|
+
// Be careful here, the latest versions of vue cli are bootstrapping a vue 3 project
|
|
121
|
+
version: '4',
|
|
121
122
|
generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
|
|
122
123
|
`npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ')
|
|
123
124
|
};
|
|
@@ -151,7 +152,8 @@ const sfcVue = {
|
|
|
151
152
|
framework: 'vue',
|
|
152
153
|
name: 'sfcVue',
|
|
153
154
|
version: 'latest',
|
|
154
|
-
|
|
155
|
+
//
|
|
156
|
+
generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack@webpack-4')
|
|
155
157
|
};
|
|
156
158
|
exports.sfcVue = sfcVue;
|
|
157
159
|
const svelte = {
|
|
@@ -15,6 +15,8 @@ var _shelljs = _interopRequireDefault(require("shelljs"));
|
|
|
15
15
|
|
|
16
16
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
17
17
|
|
|
18
|
+
var _configs = require("./configs");
|
|
19
|
+
|
|
18
20
|
const _excluded = ["name", "version"];
|
|
19
21
|
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -38,17 +40,18 @@ const exec = async (command, options = {}, {
|
|
|
38
40
|
silent: true
|
|
39
41
|
};
|
|
40
42
|
|
|
41
|
-
_shelljs.default.exec(command, Object.assign({}, defaultOptions, options
|
|
43
|
+
const child = _shelljs.default.exec(command, Object.assign({}, defaultOptions, options, {
|
|
44
|
+
async: true
|
|
45
|
+
}));
|
|
46
|
+
|
|
47
|
+
child.stderr.pipe(process.stderr);
|
|
48
|
+
child.stdout.pipe(process.stdout);
|
|
49
|
+
child.on('exit', code => {
|
|
42
50
|
if (code === 0) {
|
|
43
51
|
resolve(undefined);
|
|
44
52
|
} else {
|
|
45
53
|
logger.error(_chalk.default.red(`An error occurred while executing: \`${command}\``));
|
|
46
|
-
logger.
|
|
47
|
-
|
|
48
|
-
if (errorMessage) {
|
|
49
|
-
logger.error(errorMessage);
|
|
50
|
-
}
|
|
51
|
-
|
|
54
|
+
logger.log(errorMessage);
|
|
52
55
|
reject(new Error(`command exited with code: ${code}: `));
|
|
53
56
|
}
|
|
54
57
|
});
|
|
@@ -59,10 +62,18 @@ exports.exec = exec;
|
|
|
59
62
|
|
|
60
63
|
const installYarn2 = async ({
|
|
61
64
|
cwd,
|
|
62
|
-
pnp
|
|
65
|
+
pnp,
|
|
66
|
+
name
|
|
63
67
|
}) => {
|
|
64
|
-
const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]
|
|
65
|
-
|
|
68
|
+
const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]; // FIXME: Some dependencies used by CRA aren't listed in its package.json
|
|
69
|
+
// Next line is a hack to remove as soon as CRA will have added these missing deps
|
|
70
|
+
// for details see https://github.com/facebook/create-react-app/pull/11751
|
|
71
|
+
|
|
72
|
+
if ([_configs.cra.name, _configs.cra_typescript.name].includes(name)) {
|
|
73
|
+
command.push(`yarn config set packageExtensions --json '{ "babel-preset-react-app@10.0.x": { "dependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.16.0" } } }'`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
await exec(command.join(' && '), {
|
|
66
77
|
cwd
|
|
67
78
|
}, {
|
|
68
79
|
startMessage: `๐งถ Installing Yarn 2`,
|
|
@@ -198,8 +209,6 @@ const createAndInit = async (cwd, _ref, {
|
|
|
198
209
|
logger.log();
|
|
199
210
|
logger.info(`๐ Starting for ${name} ${version}`);
|
|
200
211
|
logger.log();
|
|
201
|
-
logger.debug(options);
|
|
202
|
-
logger.log();
|
|
203
212
|
await doTask(generate, Object.assign({}, options, {
|
|
204
213
|
cwd: options.creationPath
|
|
205
214
|
}));
|
package/dist/esm/repro.js
CHANGED
package/dist/esm/versions.js
CHANGED
|
@@ -6,60 +6,60 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
// auto generated file, do not edit
|
|
8
8
|
var _default = {
|
|
9
|
-
"@storybook/addon-a11y": "6.5.0-alpha.
|
|
10
|
-
"@storybook/addon-actions": "6.5.0-alpha.
|
|
11
|
-
"@storybook/addon-backgrounds": "6.5.0-alpha.
|
|
12
|
-
"@storybook/addon-controls": "6.5.0-alpha.
|
|
13
|
-
"@storybook/addon-docs": "6.5.0-alpha.
|
|
14
|
-
"@storybook/addon-essentials": "6.5.0-alpha.
|
|
15
|
-
"@storybook/addon-interactions": "6.5.0-alpha.
|
|
16
|
-
"@storybook/addon-jest": "6.5.0-alpha.
|
|
17
|
-
"@storybook/addon-links": "6.5.0-alpha.
|
|
18
|
-
"@storybook/addon-measure": "6.5.0-alpha.
|
|
19
|
-
"@storybook/addon-outline": "6.5.0-alpha.
|
|
20
|
-
"@storybook/addon-storyshots": "6.5.0-alpha.
|
|
21
|
-
"@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.
|
|
22
|
-
"@storybook/addon-storysource": "6.5.0-alpha.
|
|
23
|
-
"@storybook/addon-toolbars": "6.5.0-alpha.
|
|
24
|
-
"@storybook/addon-viewport": "6.5.0-alpha.
|
|
25
|
-
"@storybook/addons": "6.5.0-alpha.
|
|
26
|
-
"@storybook/angular": "6.5.0-alpha.
|
|
27
|
-
"@storybook/api": "6.5.0-alpha.
|
|
28
|
-
"@storybook/builder-webpack4": "6.5.0-alpha.
|
|
29
|
-
"@storybook/builder-webpack5": "6.5.0-alpha.
|
|
30
|
-
"@storybook/channel-postmessage": "6.5.0-alpha.
|
|
31
|
-
"@storybook/channel-websocket": "6.5.0-alpha.
|
|
32
|
-
"@storybook/channels": "6.5.0-alpha.
|
|
33
|
-
"@storybook/cli": "6.5.0-alpha.
|
|
34
|
-
"@storybook/client-api": "6.5.0-alpha.
|
|
35
|
-
"@storybook/client-logger": "6.5.0-alpha.
|
|
36
|
-
"@storybook/codemod": "6.5.0-alpha.
|
|
37
|
-
"@storybook/components": "6.5.0-alpha.
|
|
38
|
-
"@storybook/core": "6.5.0-alpha.
|
|
39
|
-
"@storybook/core-client": "6.5.0-alpha.
|
|
40
|
-
"@storybook/core-common": "6.5.0-alpha.
|
|
41
|
-
"@storybook/core-events": "6.5.0-alpha.
|
|
42
|
-
"@storybook/core-server": "6.5.0-alpha.
|
|
43
|
-
"@storybook/csf-tools": "6.5.0-alpha.
|
|
44
|
-
"@storybook/ember": "6.5.0-alpha.
|
|
45
|
-
"@storybook/html": "6.5.0-alpha.
|
|
46
|
-
"@storybook/instrumenter": "6.5.0-alpha.
|
|
47
|
-
"@storybook/manager-webpack4": "6.5.0-alpha.
|
|
48
|
-
"@storybook/manager-webpack5": "6.5.0-alpha.
|
|
49
|
-
"@storybook/node-logger": "6.5.0-alpha.
|
|
50
|
-
"@storybook/postinstall": "6.5.0-alpha.
|
|
51
|
-
"@storybook/preact": "6.5.0-alpha.
|
|
52
|
-
"@storybook/preview-web": "6.5.0-alpha.
|
|
53
|
-
"@storybook/react": "6.5.0-alpha.
|
|
54
|
-
"@storybook/router": "6.5.0-alpha.
|
|
55
|
-
"@storybook/server": "6.5.0-alpha.
|
|
56
|
-
"@storybook/source-loader": "6.5.0-alpha.
|
|
57
|
-
"@storybook/store": "6.5.0-alpha.
|
|
58
|
-
"@storybook/svelte": "6.5.0-alpha.
|
|
59
|
-
"@storybook/theming": "6.5.0-alpha.
|
|
60
|
-
"@storybook/ui": "6.5.0-alpha.
|
|
61
|
-
"@storybook/vue": "6.5.0-alpha.
|
|
62
|
-
"@storybook/vue3": "6.5.0-alpha.
|
|
63
|
-
"@storybook/web-components": "6.5.0-alpha.
|
|
9
|
+
"@storybook/addon-a11y": "6.5.0-alpha.40",
|
|
10
|
+
"@storybook/addon-actions": "6.5.0-alpha.40",
|
|
11
|
+
"@storybook/addon-backgrounds": "6.5.0-alpha.40",
|
|
12
|
+
"@storybook/addon-controls": "6.5.0-alpha.40",
|
|
13
|
+
"@storybook/addon-docs": "6.5.0-alpha.40",
|
|
14
|
+
"@storybook/addon-essentials": "6.5.0-alpha.40",
|
|
15
|
+
"@storybook/addon-interactions": "6.5.0-alpha.40",
|
|
16
|
+
"@storybook/addon-jest": "6.5.0-alpha.40",
|
|
17
|
+
"@storybook/addon-links": "6.5.0-alpha.40",
|
|
18
|
+
"@storybook/addon-measure": "6.5.0-alpha.40",
|
|
19
|
+
"@storybook/addon-outline": "6.5.0-alpha.40",
|
|
20
|
+
"@storybook/addon-storyshots": "6.5.0-alpha.40",
|
|
21
|
+
"@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.40",
|
|
22
|
+
"@storybook/addon-storysource": "6.5.0-alpha.40",
|
|
23
|
+
"@storybook/addon-toolbars": "6.5.0-alpha.40",
|
|
24
|
+
"@storybook/addon-viewport": "6.5.0-alpha.40",
|
|
25
|
+
"@storybook/addons": "6.5.0-alpha.40",
|
|
26
|
+
"@storybook/angular": "6.5.0-alpha.40",
|
|
27
|
+
"@storybook/api": "6.5.0-alpha.40",
|
|
28
|
+
"@storybook/builder-webpack4": "6.5.0-alpha.40",
|
|
29
|
+
"@storybook/builder-webpack5": "6.5.0-alpha.40",
|
|
30
|
+
"@storybook/channel-postmessage": "6.5.0-alpha.40",
|
|
31
|
+
"@storybook/channel-websocket": "6.5.0-alpha.40",
|
|
32
|
+
"@storybook/channels": "6.5.0-alpha.40",
|
|
33
|
+
"@storybook/cli": "6.5.0-alpha.40",
|
|
34
|
+
"@storybook/client-api": "6.5.0-alpha.40",
|
|
35
|
+
"@storybook/client-logger": "6.5.0-alpha.40",
|
|
36
|
+
"@storybook/codemod": "6.5.0-alpha.40",
|
|
37
|
+
"@storybook/components": "6.5.0-alpha.40",
|
|
38
|
+
"@storybook/core": "6.5.0-alpha.40",
|
|
39
|
+
"@storybook/core-client": "6.5.0-alpha.40",
|
|
40
|
+
"@storybook/core-common": "6.5.0-alpha.40",
|
|
41
|
+
"@storybook/core-events": "6.5.0-alpha.40",
|
|
42
|
+
"@storybook/core-server": "6.5.0-alpha.40",
|
|
43
|
+
"@storybook/csf-tools": "6.5.0-alpha.40",
|
|
44
|
+
"@storybook/ember": "6.5.0-alpha.40",
|
|
45
|
+
"@storybook/html": "6.5.0-alpha.40",
|
|
46
|
+
"@storybook/instrumenter": "6.5.0-alpha.40",
|
|
47
|
+
"@storybook/manager-webpack4": "6.5.0-alpha.40",
|
|
48
|
+
"@storybook/manager-webpack5": "6.5.0-alpha.40",
|
|
49
|
+
"@storybook/node-logger": "6.5.0-alpha.40",
|
|
50
|
+
"@storybook/postinstall": "6.5.0-alpha.40",
|
|
51
|
+
"@storybook/preact": "6.5.0-alpha.40",
|
|
52
|
+
"@storybook/preview-web": "6.5.0-alpha.40",
|
|
53
|
+
"@storybook/react": "6.5.0-alpha.40",
|
|
54
|
+
"@storybook/router": "6.5.0-alpha.40",
|
|
55
|
+
"@storybook/server": "6.5.0-alpha.40",
|
|
56
|
+
"@storybook/source-loader": "6.5.0-alpha.40",
|
|
57
|
+
"@storybook/store": "6.5.0-alpha.40",
|
|
58
|
+
"@storybook/svelte": "6.5.0-alpha.40",
|
|
59
|
+
"@storybook/theming": "6.5.0-alpha.40",
|
|
60
|
+
"@storybook/ui": "6.5.0-alpha.40",
|
|
61
|
+
"@storybook/vue": "6.5.0-alpha.40",
|
|
62
|
+
"@storybook/vue3": "6.5.0-alpha.40",
|
|
63
|
+
"@storybook/web-components": "6.5.0-alpha.40"
|
|
64
64
|
};
|
|
65
65
|
exports.default = _default;
|
package/dist/modern/extract.js
CHANGED
|
@@ -24,8 +24,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
24
24
|
const read = async url => {
|
|
25
25
|
const browser = await usePuppeteerBrowser();
|
|
26
26
|
const page = await browser.newPage();
|
|
27
|
-
await page.goto(url);
|
|
28
|
-
|
|
27
|
+
await page.goto(url); // we don't know whether we are running against a new or old storybook
|
|
28
|
+
// FIXME: add tests for both
|
|
29
|
+
|
|
30
|
+
await page.waitForFunction(`
|
|
31
|
+
(window.__STORYBOOK_PREVIEW__ && window.__STORYBOOK_PREVIEW__.extract && window.__STORYBOOK_PREVIEW__.extract()) ||
|
|
32
|
+
(window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract())
|
|
33
|
+
`);
|
|
29
34
|
const data = JSON.parse(await page.evaluate(async () => {
|
|
30
35
|
// eslint-disable-next-line no-undef
|
|
31
36
|
return JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(), null, 2);
|
|
@@ -44,7 +44,15 @@ const generator = async (packageManager, npmOptions, options) => {
|
|
|
44
44
|
}) : options; // `@storybook/preset-create-react-app` has `@storybook/node-logger` as peerDep
|
|
45
45
|
|
|
46
46
|
const extraPackages = ['@storybook/node-logger'];
|
|
47
|
-
|
|
47
|
+
|
|
48
|
+
if (isCra5) {
|
|
49
|
+
extraPackages.push('webpack'); // Miscellaneous dependency used in `babel-preset-react-app` but not listed as dep there
|
|
50
|
+
|
|
51
|
+
extraPackages.push('babel-plugin-named-exports-order'); // Miscellaneous dependency to add to be sure Storybook + CRA is working fine with Yarn PnP mode
|
|
52
|
+
|
|
53
|
+
extraPackages.push('prop-types');
|
|
54
|
+
} // preset v3 is compat with older versions of CRA, otherwise let version float
|
|
55
|
+
|
|
48
56
|
|
|
49
57
|
const extraAddons = [`@storybook/preset-create-react-app${isCra5 ? '' : '@3'}`];
|
|
50
58
|
await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, updatedOptions, 'react', {
|
|
@@ -51,7 +51,7 @@ const builderDependencies = builder => {
|
|
|
51
51
|
|
|
52
52
|
const stripVersions = addons => addons.map(addon => (0, _jsPackageManager.getPackageDetails)(addon)[0]);
|
|
53
53
|
|
|
54
|
-
const hasInteractiveStories = framework => ['react'].includes(framework);
|
|
54
|
+
const hasInteractiveStories = framework => ['react', 'angular'].includes(framework);
|
|
55
55
|
|
|
56
56
|
async function baseGenerator(packageManager, npmOptions, {
|
|
57
57
|
language,
|
package/dist/modern/initiate.js
CHANGED
|
@@ -282,11 +282,12 @@ async function initiate(options, pkg) {
|
|
|
282
282
|
} catch (ex) {
|
|
283
283
|
done(ex.message);
|
|
284
284
|
process.exit(1);
|
|
285
|
+
return;
|
|
285
286
|
}
|
|
286
287
|
|
|
287
288
|
done();
|
|
288
289
|
await installStorybook(projectType, Object.assign({}, options, isEsm ? {
|
|
289
290
|
commonJs: true
|
|
290
291
|
} : undefined));
|
|
291
|
-
|
|
292
|
+
await (0, _automigrate.automigrate)();
|
|
292
293
|
}
|
|
@@ -14,16 +14,16 @@ const cra = {
|
|
|
14
14
|
framework: 'react',
|
|
15
15
|
name: 'cra',
|
|
16
16
|
version: 'latest',
|
|
17
|
-
generator: [// Force npm otherwise we have a mess between Yarn 1
|
|
18
|
-
'npx create-react-app@{{version}} {{appName}}
|
|
17
|
+
generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
|
|
18
|
+
'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}}', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
|
|
19
19
|
};
|
|
20
20
|
exports.cra = cra;
|
|
21
21
|
const cra_typescript = {
|
|
22
22
|
framework: 'react',
|
|
23
23
|
name: 'cra_typescript',
|
|
24
24
|
version: 'latest',
|
|
25
|
-
generator: [// Force npm otherwise we have a mess between Yarn 1
|
|
26
|
-
'npx create-react-app@{{version}} {{appName}} --template typescript
|
|
25
|
+
generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
|
|
26
|
+
'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}} --template typescript'].join(' && ')
|
|
27
27
|
};
|
|
28
28
|
exports.cra_typescript = cra_typescript;
|
|
29
29
|
const react = {
|
|
@@ -62,7 +62,7 @@ const baseAngular = {
|
|
|
62
62
|
framework: 'angular',
|
|
63
63
|
name: 'angular',
|
|
64
64
|
version: 'latest',
|
|
65
|
-
generator: `npx
|
|
65
|
+
generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
|
|
66
66
|
};
|
|
67
67
|
const angular10 = Object.assign({}, baseAngular, {
|
|
68
68
|
name: 'angular10',
|
|
@@ -117,7 +117,8 @@ exports.web_components_lit2 = web_components_lit2;
|
|
|
117
117
|
const vue = {
|
|
118
118
|
framework: 'vue',
|
|
119
119
|
name: 'vue',
|
|
120
|
-
|
|
120
|
+
// Be careful here, the latest versions of vue cli are bootstrapping a vue 3 project
|
|
121
|
+
version: '4',
|
|
121
122
|
generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
|
|
122
123
|
`npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ')
|
|
123
124
|
};
|
|
@@ -151,7 +152,8 @@ const sfcVue = {
|
|
|
151
152
|
framework: 'vue',
|
|
152
153
|
name: 'sfcVue',
|
|
153
154
|
version: 'latest',
|
|
154
|
-
|
|
155
|
+
//
|
|
156
|
+
generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack@webpack-4')
|
|
155
157
|
};
|
|
156
158
|
exports.sfcVue = sfcVue;
|
|
157
159
|
const svelte = {
|
|
@@ -15,6 +15,8 @@ var _shelljs = _interopRequireDefault(require("shelljs"));
|
|
|
15
15
|
|
|
16
16
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
17
17
|
|
|
18
|
+
var _configs = require("./configs");
|
|
19
|
+
|
|
18
20
|
const _excluded = ["name", "version"];
|
|
19
21
|
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -38,17 +40,18 @@ const exec = async (command, options = {}, {
|
|
|
38
40
|
silent: true
|
|
39
41
|
};
|
|
40
42
|
|
|
41
|
-
_shelljs.default.exec(command, Object.assign({}, defaultOptions, options
|
|
43
|
+
const child = _shelljs.default.exec(command, Object.assign({}, defaultOptions, options, {
|
|
44
|
+
async: true
|
|
45
|
+
}));
|
|
46
|
+
|
|
47
|
+
child.stderr.pipe(process.stderr);
|
|
48
|
+
child.stdout.pipe(process.stdout);
|
|
49
|
+
child.on('exit', code => {
|
|
42
50
|
if (code === 0) {
|
|
43
51
|
resolve(undefined);
|
|
44
52
|
} else {
|
|
45
53
|
logger.error(_chalk.default.red(`An error occurred while executing: \`${command}\``));
|
|
46
|
-
logger.
|
|
47
|
-
|
|
48
|
-
if (errorMessage) {
|
|
49
|
-
logger.error(errorMessage);
|
|
50
|
-
}
|
|
51
|
-
|
|
54
|
+
logger.log(errorMessage);
|
|
52
55
|
reject(new Error(`command exited with code: ${code}: `));
|
|
53
56
|
}
|
|
54
57
|
});
|
|
@@ -59,10 +62,18 @@ exports.exec = exec;
|
|
|
59
62
|
|
|
60
63
|
const installYarn2 = async ({
|
|
61
64
|
cwd,
|
|
62
|
-
pnp
|
|
65
|
+
pnp,
|
|
66
|
+
name
|
|
63
67
|
}) => {
|
|
64
|
-
const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]
|
|
65
|
-
|
|
68
|
+
const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]; // FIXME: Some dependencies used by CRA aren't listed in its package.json
|
|
69
|
+
// Next line is a hack to remove as soon as CRA will have added these missing deps
|
|
70
|
+
// for details see https://github.com/facebook/create-react-app/pull/11751
|
|
71
|
+
|
|
72
|
+
if ([_configs.cra.name, _configs.cra_typescript.name].includes(name)) {
|
|
73
|
+
command.push(`yarn config set packageExtensions --json '{ "babel-preset-react-app@10.0.x": { "dependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.16.0" } } }'`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
await exec(command.join(' && '), {
|
|
66
77
|
cwd
|
|
67
78
|
}, {
|
|
68
79
|
startMessage: `๐งถ Installing Yarn 2`,
|
|
@@ -198,8 +209,6 @@ const createAndInit = async (cwd, _ref, {
|
|
|
198
209
|
logger.log();
|
|
199
210
|
logger.info(`๐ Starting for ${name} ${version}`);
|
|
200
211
|
logger.log();
|
|
201
|
-
logger.debug(options);
|
|
202
|
-
logger.log();
|
|
203
212
|
await doTask(generate, Object.assign({}, options, {
|
|
204
213
|
cwd: options.creationPath
|
|
205
214
|
}));
|