UNPKG

nwb

Version:

A toolkit for React, Preact & Inferno apps, React libraries and other npm modules for the web, with no configuration (until you need it)

56 lines (43 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = buildModule; var _runSeries = _interopRequireDefault(require("run-series")); var _moduleBuild = _interopRequireDefault(require("../moduleBuild")); var _utils = require("../utils"); var _buildDemo = _interopRequireDefault(require("./build-demo")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Create a React component's CommonJS and ES modules and UMD builds, and build * its demo app if it has one. */ function buildModule(args, cb) { let config = { babel: { presets: ['react'], runtime: { helpers: false } } }; // Disable removal of propTypes in production builds with --[keep-]proptypes if (args.proptypes !== true && args['keep-proptypes'] !== true) { // Wrap propTypes with an environment check in development builds config.babelDev = { removePropTypes: { mode: 'wrap' } }; // Strip propTypes and prop-type imports from UMD production build config.babelProd = { removePropTypes: { removeImport: true } }; } let tasks = [cb => (0, _moduleBuild.default)(args, config, cb)]; // Disable demo build with --no-demo or --no-demo-build if (args.demo !== false && args['demo-build'] !== false && (0, _utils.directoryExists)('demo')) { tasks.push(cb => (0, _buildDemo.default)(args, cb)); } (0, _runSeries.default)(tasks, cb); } module.exports = exports.default;