UNPKG

@storybook/cli

Version:

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

61 lines (46 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/es.promise.js"); var _path = _interopRequireDefault(require("path")); var _fs = _interopRequireDefault(require("fs")); var _semver = _interopRequireDefault(require("@storybook/semver")); var _baseGenerator = require("../baseGenerator"); var _project_types = require("../../project_types"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const generator = async (packageManager, npmOptions, options) => { var _semver$coerce; const extraMain = options.linkable ? { webpackFinal: `%%(config) => { const path = require('path'); // add monorepo root as a valid directory to import modules from config.resolve.plugins.forEach((p) => { if (Array.isArray(p.appSrcs)) { p.appSrcs.push(path.join(__dirname, '..', '..', '..', 'storybook')); } }); return config; } %%` } : {}; const craVersion = (_semver$coerce = _semver.default.coerce(packageManager.retrievePackageJson().dependencies['react-scripts'])) === null || _semver$coerce === void 0 ? void 0 : _semver$coerce.version; const isCra5 = craVersion && _semver.default.gte(craVersion, '5.0.0'); const updatedOptions = isCra5 ? Object.assign({}, options, { builder: _project_types.CoreBuilder.Webpack5 }) : options; // `@storybook/preset-create-react-app` has `@storybook/node-logger` as peerDep const extraPackages = ['@storybook/node-logger']; if (isCra5) extraPackages.push('webpack'); // preset v3 is compat with older versions of CRA, otherwise let version float const extraAddons = [`@storybook/preset-create-react-app${isCra5 ? '' : '@3'}`]; await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, updatedOptions, 'react', { extraAddons, extraPackages, staticDir: _fs.default.existsSync(_path.default.resolve('./public')) ? 'public' : undefined, addBabel: false, addESLint: true, extraMain }); }; var _default = generator; exports.default = _default;