UNPKG

@storybook/cli

Version:

Storybook's CLI - easiest method of adding storybook to your projects

153 lines (145 loc) 5.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.svelte = exports.sfcVue = exports.preact = exports.html = exports.vue3 = exports.vue = exports.web_components_lit2 = exports.web_components_typescript = exports.web_components = exports.angular = exports.angular12 = exports.angular11 = exports.angular10 = exports.react_in_yarn_workspace = exports.webpack_react = exports.react_typescript = exports.react = exports.cra_typescript = exports.cra = void 0; const fromDeps = (...args) => ['mkdir {{appName}}', 'cd {{appName}}', // Create `yarn.lock` to force Yarn to consider adding deps in this directory // and not look for a yarn workspace in parent directory 'touch yarn.lock', 'yarn init --yes', args.length && `yarn add ${args.join(' ')}`].filter(Boolean).join(' && '); // #region React const cra = { framework: 'react', name: 'cra', version: 'latest', generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2 'npx create-react-app@{{version}} {{appName}} --use-npm', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ') }; exports.cra = cra; const cra_typescript = { framework: 'react', name: 'cra_typescript', version: 'latest', generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2 'npx create-react-app@{{version}} {{appName}} --template typescript --use-npm'].join(' && ') }; exports.cra_typescript = cra_typescript; const react = { framework: 'react', name: 'react', version: 'latest', generator: fromDeps('react', 'react-dom'), additionalDeps: ['prop-types'] }; exports.react = react; const react_typescript = { framework: 'react', name: 'react_typescript', version: 'latest', generator: fromDeps('react', 'react-dom'), typescript: true }; exports.react_typescript = react_typescript; const webpack_react = { framework: 'react', name: 'webpack_react', version: 'latest', generator: fromDeps('react', 'react-dom', 'webpack@webpack-4') }; exports.webpack_react = webpack_react; const react_in_yarn_workspace = { framework: 'react', name: 'react_in_yarn_workspace', version: 'latest', generator: ['mkdir {{appName}}', 'cd {{appName}}', 'echo "{ \\"name\\": \\"workspace-root\\", \\"private\\": true, \\"workspaces\\": [] }" > package.json', 'touch yarn.lock', `yarn add react react-dom`].join(' && ') }; // #endregion // #region Angular exports.react_in_yarn_workspace = react_in_yarn_workspace; const baseAngular = { framework: 'angular', name: 'angular', version: 'latest', generator: `npx --package @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict` }; const angular10 = Object.assign({}, baseAngular, { name: 'angular10', version: 'v10-lts' }); exports.angular10 = angular10; const angular11 = Object.assign({}, baseAngular, { name: 'angular11', version: 'v11-lts' }); exports.angular11 = angular11; const angular12 = Object.assign({}, baseAngular, { name: 'angular12', version: 'v12-lts' }); exports.angular12 = angular12; const angular = baseAngular; // #endregion // #region web components exports.angular = angular; const web_components = { framework: 'web-components', name: 'web_components', version: '2', generator: fromDeps('lit-element') }; exports.web_components = web_components; const web_components_typescript = Object.assign({}, web_components, { name: 'web_components_typescript', typescript: true }); exports.web_components_typescript = web_components_typescript; const web_components_lit2 = Object.assign({}, web_components, { version: 'next', name: 'web_components_lit2', generator: fromDeps('lit'), typescript: true }); // #endregion // #region vue exports.web_components_lit2 = web_components_lit2; const vue = { framework: 'vue', name: 'vue', version: 'latest', generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2 `npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ') }; exports.vue = vue; const vue3 = { framework: 'vue3', name: 'vue3', version: 'next', // Vue CLI v4 utilizes webpack 4, and the 5-alpha uses webpack 5 so we force ^4 here generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2 `npx -p @vue/cli@^4 vue create {{appName}} --preset=__default_vue_3__ --packageManager=npm --no-git --force`].join(' && ') }; // #endregion exports.vue3 = vue3; const html = { framework: 'html', name: 'html', version: 'latest', generator: fromDeps(), autoDetect: false }; exports.html = html; const preact = { framework: 'preact', name: 'preact', version: 'latest', generator: 'npx preact-cli@{{version}} create preactjs-templates/default {{appName}} --install=false --git=false' }; exports.preact = preact; const sfcVue = { framework: 'vue', name: 'sfcVue', version: 'latest', generator: fromDeps('vue', 'vue-loader', 'vue-template-compiler', 'webpack@webpack-4') }; exports.sfcVue = sfcVue; const svelte = { framework: 'svelte', name: 'svelte', version: 'latest', generator: 'npx degit sveltejs/template {{appName}}' }; exports.svelte = svelte;