@nx/storybook
Version:
33 lines (32 loc) • 1.53 kB
JavaScript
;
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',
});
}