UNPKG

@anansi/webpack-config

Version:
80 lines (79 loc) 10.7 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default; exports.__esModule = true; exports.generateBabelLoader = generateBabelLoader; var _stringify = _interopRequireDefault(require("core-js-pure/stable/json/stringify.js")); var babel = _interopRequireWildcard(require("@babel/core")); var _package = require("@babel/core/package.json"); var _package2 = require("babel-loader/package.json"); var _path = _interopRequireDefault(require("path")); var _semver = _interopRequireDefault(require("semver")); var _package3 = require("../../package.json"); function generateBabelLoader({ rootPath, babelRoot, target, mode, babelLoaderOptions, noHotReload, library }) { const react = require(require.resolve('react', { paths: [rootPath] })); let hasReactRefresh; try { require('react-refresh/babel'); hasReactRefresh = true; } catch (e) { hasReactRefresh = false; } const hasJsxRuntime = react ? !target?.includes?.('node') && _semver.default.gte(react.version, '16.14.0') || _semver.default.gte(react.version, '18.0.0') : false; const cwd = _path.default.resolve(process.cwd(), babelRoot); const filename = _path.default.join(cwd, 'noop.js'); // Environment variables that affect babel output (see babel-preset-anansi) const envVars = [process.env.NODE_ENV, process.env.BROWSERSLIST_ENV, process.env.BABEL_ENV, process.env.BABEL_MODULES, process.env.BABEL_POLYFILL_METHOD, process.env.NO_HOT_RELOAD, process.env.TS_CONFIG_PATH, process.env.RESOLVER_ALIAS, process.env.RESOLVER_ROOT, process.env.ROOT_PATH_ROOT, process.env.ROOT_PATH_SUFFIX, process.env.ROOT_PATH_PREFIX, process.env.POLYFILL_TARGETS // avoid collisions while being minimal and performant ].join('\0'); const cacheIdentifier = (0, _stringify.default)({ version: _package3.version, target, mode, hasReactRefresh, noHotReload, hasJsxRuntime, babelCoreVersion: _package.version, babelLoaderVersion: _package2.version, envVars }) + (0, _stringify.default)(babel.loadPartialConfig({ filename, cwd, sourceFileName: filename }).options); const babelLoader = { loader: require.resolve('babel-loader'), options: { cwd, cacheDirectory: true, cacheIdentifier, cacheCompression: mode === 'production', compact: mode === 'production', ...babelLoaderOptions } }; if (react) { babelLoader.options.caller = { hasJsxRuntime, ...babelLoader.options.caller }; if (noHotReload) { babelLoader.options.caller.noHotReload = true; } } if (library) { babelLoader.options.caller.library = true; } return babelLoader; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYWJlbCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9wYWNrYWdlIiwiX3BhY2thZ2UyIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3NlbXZlciIsIl9wYWNrYWdlMyIsImdlbmVyYXRlQmFiZWxMb2FkZXIiLCJyb290UGF0aCIsImJhYmVsUm9vdCIsInRhcmdldCIsIm1vZGUiLCJiYWJlbExvYWRlck9wdGlvbnMiLCJub0hvdFJlbG9hZCIsImxpYnJhcnkiLCJyZWFjdCIsInJlc29sdmUiLCJwYXRocyIsImhhc1JlYWN0UmVmcmVzaCIsImUiLCJoYXNKc3hSdW50aW1lIiwiaW5jbHVkZXMiLCJzZW12ZXIiLCJndGUiLCJ2ZXJzaW9uIiwiY3dkIiwicGF0aCIsInByb2Nlc3MiLCJmaWxlbmFtZSIsImpvaW4iLCJlbnZWYXJzIiwiZW52IiwiTk9ERV9FTlYiLCJCUk9XU0VSU0xJU1RfRU5WIiwiQkFCRUxfRU5WIiwiQkFCRUxfTU9EVUxFUyIsIkJBQkVMX1BPTFlGSUxMX01FVEhPRCIsIk5PX0hPVF9SRUxPQUQiLCJUU19DT05GSUdfUEFUSCIsIlJFU09MVkVSX0FMSUFTIiwiUkVTT0xWRVJfUk9PVCIsIlJPT1RfUEFUSF9ST09UIiwiUk9PVF9QQVRIX1NVRkZJWCIsIlJPT1RfUEFUSF9QUkVGSVgiLCJQT0xZRklMTF9UQVJHRVRTIiwiY2FjaGVJZGVudGlmaWVyIiwiX3N0cmluZ2lmeSIsImRlZmF1bHQiLCJiYWJlbENvcmVWZXJzaW9uIiwiYmFiZWxMb2FkZXJWZXJzaW9uIiwibG9hZFBhcnRpYWxDb25maWciLCJzb3VyY2VGaWxlTmFtZSIsIm9wdGlvbnMiLCJiYWJlbExvYWRlciIsImxvYWRlciIsImNhY2hlRGlyZWN0b3J5IiwiY2FjaGVDb21wcmVzc2lvbiIsImNvbXBhY3QiLCJjYWxsZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS9nZW5lcmF0ZUJhYmVsTG9hZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJhYmVsIGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCB7IHZlcnNpb24gYXMgYmFiZWxDb3JlVmVyc2lvbiB9IGZyb20gJ0BiYWJlbC9jb3JlL3BhY2thZ2UuanNvbic7XG5pbXBvcnQgeyB2ZXJzaW9uIGFzIGJhYmVsTG9hZGVyVmVyc2lvbiB9IGZyb20gJ2JhYmVsLWxvYWRlci9wYWNrYWdlLmpzb24nO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuLi8uLi9wYWNrYWdlLmpzb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVCYWJlbExvYWRlcih7XG4gIHJvb3RQYXRoLFxuICBiYWJlbFJvb3QsXG4gIHRhcmdldCxcbiAgbW9kZSxcbiAgYmFiZWxMb2FkZXJPcHRpb25zLFxuICBub0hvdFJlbG9hZCxcbiAgbGlicmFyeSxcbn0pIHtcbiAgY29uc3QgcmVhY3QgPSByZXF1aXJlKFxuICAgIHJlcXVpcmUucmVzb2x2ZSgncmVhY3QnLCB7XG4gICAgICBwYXRoczogW3Jvb3RQYXRoXSxcbiAgICB9KSxcbiAgKTtcbiAgbGV0IGhhc1JlYWN0UmVmcmVzaDtcbiAgdHJ5IHtcbiAgICByZXF1aXJlKCdyZWFjdC1yZWZyZXNoL2JhYmVsJyk7XG4gICAgaGFzUmVhY3RSZWZyZXNoID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhc1JlYWN0UmVmcmVzaCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGhhc0pzeFJ1bnRpbWUgPVxuICAgIHJlYWN0ID9cbiAgICAgICghdGFyZ2V0Py5pbmNsdWRlcz8uKCdub2RlJykgJiYgc2VtdmVyLmd0ZShyZWFjdC52ZXJzaW9uLCAnMTYuMTQuMCcpKSB8fFxuICAgICAgc2VtdmVyLmd0ZShyZWFjdC52ZXJzaW9uLCAnMTguMC4wJylcbiAgICA6IGZhbHNlO1xuICBjb25zdCBjd2QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgYmFiZWxSb290KTtcbiAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmpvaW4oY3dkLCAnbm9vcC5qcycpO1xuICAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhZmZlY3QgYmFiZWwgb3V0cHV0IChzZWUgYmFiZWwtcHJlc2V0LWFuYW5zaSlcbiAgY29uc3QgZW52VmFycyA9IFtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOVixcbiAgICBwcm9jZXNzLmVudi5CUk9XU0VSU0xJU1RfRU5WLFxuICAgIHByb2Nlc3MuZW52LkJBQkVMX0VOVixcbiAgICBwcm9jZXNzLmVudi5CQUJFTF9NT0RVTEVTLFxuICAgIHByb2Nlc3MuZW52LkJBQkVMX1BPTFlGSUxMX01FVEhPRCxcbiAgICBwcm9jZXNzLmVudi5OT19IT1RfUkVMT0FELFxuICAgIHByb2Nlc3MuZW52LlRTX0NPTkZJR19QQVRILFxuICAgIHByb2Nlc3MuZW52LlJFU09MVkVSX0FMSUFTLFxuICAgIHByb2Nlc3MuZW52LlJFU09MVkVSX1JPT1QsXG4gICAgcHJvY2Vzcy5lbnYuUk9PVF9QQVRIX1JPT1QsXG4gICAgcHJvY2Vzcy5lbnYuUk9PVF9QQVRIX1NVRkZJWCxcbiAgICBwcm9jZXNzLmVudi5ST09UX1BBVEhfUFJFRklYLFxuICAgIHByb2Nlc3MuZW52LlBPTFlGSUxMX1RBUkdFVFMsXG4gICAgLy8gYXZvaWQgY29sbGlzaW9ucyB3aGlsZSBiZWluZyBtaW5pbWFsIGFuZCBwZXJmb3JtYW50XG4gIF0uam9pbignXFwwJyk7XG5cbiAgY29uc3QgY2FjaGVJZGVudGlmaWVyID1cbiAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgdGFyZ2V0LFxuICAgICAgbW9kZSxcbiAgICAgIGhhc1JlYWN0UmVmcmVzaCxcbiAgICAgIG5vSG90UmVsb2FkLFxuICAgICAgaGFzSnN4UnVudGltZSxcbiAgICAgIGJhYmVsQ29yZVZlcnNpb24sXG4gICAgICBiYWJlbExvYWRlclZlcnNpb24sXG4gICAgICBlbnZWYXJzLFxuICAgIH0pICtcbiAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgIGJhYmVsLmxvYWRQYXJ0aWFsQ29uZmlnKHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGN3ZCxcbiAgICAgICAgc291cmNlRmlsZU5hbWU6IGZpbGVuYW1lLFxuICAgICAgfSkub3B0aW9ucyxcbiAgICApO1xuICBjb25zdCBiYWJlbExvYWRlciA9IHtcbiAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZSgnYmFiZWwtbG9hZGVyJyksXG4gICAgb3B0aW9uczoge1xuICAgICAgY3dkLFxuICAgICAgY2FjaGVEaXJlY3Rvcnk6IHRydWUsXG4gICAgICBjYWNoZUlkZW50aWZpZXIsXG4gICAgICBjYWNoZUNvbXByZXNzaW9uOiBtb2RlID09PSAncHJvZHVjdGlvbicsXG4gICAgICBjb21wYWN0OiBtb2RlID09PSAncHJvZHVjdGlvbicsXG4gICAgICAuLi5iYWJlbExvYWRlck9wdGlvbnMsXG4gICAgfSxcbiAgfTtcbiAgaWYgKHJlYWN0KSB7XG4gICAgYmFiZWxMb2FkZXIub3B0aW9ucy5jYWxsZXIgPSB7XG4gICAgICBoYXNKc3hSdW50aW1lLFxuICAgICAgLi4uYmFiZWxMb2FkZXIub3B0aW9ucy5jYWxsZXIsXG4gICAgfTtcbiAgICBpZiAobm9Ib3RSZWxvYWQpIHtcbiAgICAgIGJhYmVsTG9hZGVyLm9wdGlvbnMuY2FsbGVyLm5vSG90UmVsb2FkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKGxpYnJhcnkpIHtcbiAgICBiYWJlbExvYWRlci5vcHRpb25zLmNhbGxlci5saWJyYXJ5ID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gYmFiZWxMb2FkZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFDLHNCQUFB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