UNPKG

@nx/storybook

Version:

The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.

33 lines (32 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = buildStorybookExecutor; const devkit_1 = require("@nx/devkit"); const utilities_1 = require("../../utils/utilities"); const semver_1 = require("semver"); const deprecation_1 = require("../../utils/deprecation"); async function buildStorybookExecutor(options, context) { (0, deprecation_1.warnStorybookBuildExecutorDeprecation)(); (0, utilities_1.storybookConfigExistsCheck)(options.configDir, context.projectName); const buildOptions = options; devkit_1.logger.info(`NX Storybook builder starting ...`); await runInstance(buildOptions); devkit_1.logger.info(`NX Storybook builder finished ...`); devkit_1.logger.info(`NX Storybook files available in ${buildOptions.outputDir}`); return { success: true }; } async function runInstance(options) { const installedStorybookVersion = (0, utilities_1.getInstalledStorybookVersion)(); const hasCoreServerInStorybookPackage = (0, semver_1.gte)(installedStorybookVersion, '8.2.0'); const storybookCore = await (hasCoreServerInStorybookPackage ? import('storybook/internal/core-server') : // This is needed for backwards compatibility - but we do not have the package installed in the nx repo // @ts-ignore import('@storybook/core-server')); const env = process.env.NODE_ENV ?? 'production'; process.env.NODE_ENV = env; return storybookCore.build({ ...options, mode: 'static', }); }