UNPKG

@anansi/webpack-config

Version:
75 lines (74 loc) 8.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default; exports.__esModule = true; exports.generateBabelLoader = generateBabelLoader; 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'); const cacheIdentifier = JSON.stringify({ version: _package3.version, target, mode, hasReactRefresh, noHotReload, hasJsxRuntime, babelCoreVersion: _package.version, babelLoaderVersion: _package2.version, env: [process.env.NODE_ENV, process.env.BROWSERSLIST_ENV].join(',') }) + JSON.stringify(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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYWJlbCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9wYWNrYWdlIiwiX3BhY2thZ2UyIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3NlbXZlciIsIl9wYWNrYWdlMyIsImdlbmVyYXRlQmFiZWxMb2FkZXIiLCJyb290UGF0aCIsImJhYmVsUm9vdCIsInRhcmdldCIsIm1vZGUiLCJiYWJlbExvYWRlck9wdGlvbnMiLCJub0hvdFJlbG9hZCIsImxpYnJhcnkiLCJyZWFjdCIsInJlc29sdmUiLCJwYXRocyIsImhhc1JlYWN0UmVmcmVzaCIsImUiLCJoYXNKc3hSdW50aW1lIiwiaW5jbHVkZXMiLCJzZW12ZXIiLCJndGUiLCJ2ZXJzaW9uIiwiY3dkIiwicGF0aCIsInByb2Nlc3MiLCJmaWxlbmFtZSIsImpvaW4iLCJjYWNoZUlkZW50aWZpZXIiLCJKU09OIiwic3RyaW5naWZ5IiwiYmFiZWxDb3JlVmVyc2lvbiIsImJhYmVsTG9hZGVyVmVyc2lvbiIsImVudiIsIk5PREVfRU5WIiwiQlJPV1NFUlNMSVNUX0VOViIsImxvYWRQYXJ0aWFsQ29uZmlnIiwic291cmNlRmlsZU5hbWUiLCJvcHRpb25zIiwiYmFiZWxMb2FkZXIiLCJsb2FkZXIiLCJjYWNoZURpcmVjdG9yeSIsImNhY2hlQ29tcHJlc3Npb24iLCJjb21wYWN0IiwiY2FsbGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UvZ2VuZXJhdGVCYWJlbExvYWRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYWJlbCBmcm9tICdAYmFiZWwvY29yZSc7XG5pbXBvcnQgeyB2ZXJzaW9uIGFzIGJhYmVsQ29yZVZlcnNpb24gfSBmcm9tICdAYmFiZWwvY29yZS9wYWNrYWdlLmpzb24nO1xuaW1wb3J0IHsgdmVyc2lvbiBhcyBiYWJlbExvYWRlclZlcnNpb24gfSBmcm9tICdiYWJlbC1sb2FkZXIvcGFja2FnZS5qc29uJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vLi4vcGFja2FnZS5qc29uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQmFiZWxMb2FkZXIoe1xuICByb290UGF0aCxcbiAgYmFiZWxSb290LFxuICB0YXJnZXQsXG4gIG1vZGUsXG4gIGJhYmVsTG9hZGVyT3B0aW9ucyxcbiAgbm9Ib3RSZWxvYWQsXG4gIGxpYnJhcnksXG59KSB7XG4gIGNvbnN0IHJlYWN0ID0gcmVxdWlyZShcbiAgICByZXF1aXJlLnJlc29sdmUoJ3JlYWN0Jywge1xuICAgICAgcGF0aHM6IFtyb290UGF0aF0sXG4gICAgfSksXG4gICk7XG4gIGxldCBoYXNSZWFjdFJlZnJlc2g7XG4gIHRyeSB7XG4gICAgcmVxdWlyZSgncmVhY3QtcmVmcmVzaC9iYWJlbCcpO1xuICAgIGhhc1JlYWN0UmVmcmVzaCA9IHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBoYXNSZWFjdFJlZnJlc2ggPSBmYWxzZTtcbiAgfVxuICBjb25zdCBoYXNKc3hSdW50aW1lID1cbiAgICByZWFjdCA/XG4gICAgICAoIXRhcmdldD8uaW5jbHVkZXM/Lignbm9kZScpICYmIHNlbXZlci5ndGUocmVhY3QudmVyc2lvbiwgJzE2LjE0LjAnKSkgfHxcbiAgICAgIHNlbXZlci5ndGUocmVhY3QudmVyc2lvbiwgJzE4LjAuMCcpXG4gICAgOiBmYWxzZTtcbiAgY29uc3QgY3dkID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGJhYmVsUm9vdCk7XG4gIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5qb2luKGN3ZCwgJ25vb3AuanMnKTtcbiAgY29uc3QgY2FjaGVJZGVudGlmaWVyID1cbiAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgdGFyZ2V0LFxuICAgICAgbW9kZSxcbiAgICAgIGhhc1JlYWN0UmVmcmVzaCxcbiAgICAgIG5vSG90UmVsb2FkLFxuICAgICAgaGFzSnN4UnVudGltZSxcbiAgICAgIGJhYmVsQ29yZVZlcnNpb24sXG4gICAgICBiYWJlbExvYWRlclZlcnNpb24sXG4gICAgICBlbnY6IFtwcm9jZXNzLmVudi5OT0RFX0VOViwgcHJvY2Vzcy5lbnYuQlJPV1NFUlNMSVNUX0VOVl0uam9pbignLCcpLFxuICAgIH0pICtcbiAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgIGJhYmVsLmxvYWRQYXJ0aWFsQ29uZmlnKHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGN3ZCxcbiAgICAgICAgc291cmNlRmlsZU5hbWU6IGZpbGVuYW1lLFxuICAgICAgfSkub3B0aW9ucyxcbiAgICApO1xuICBjb25zdCBiYWJlbExvYWRlciA9IHtcbiAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZSgnYmFiZWwtbG9hZGVyJyksXG4gICAgb3B0aW9uczoge1xuICAgICAgY3dkLFxuICAgICAgY2FjaGVEaXJlY3Rvcnk6IHRydWUsXG4gICAgICBjYWNoZUlkZW50aWZpZXIsXG4gICAgICBjYWNoZUNvbXByZXNzaW9uOiBtb2RlID09PSAncHJvZHVjdGlvbicsXG4gICAgICBjb21wYWN0OiBtb2RlID09PSAncHJvZHVjdGlvbicsXG4gICAgICAuLi5iYWJlbExvYWRlck9wdGlvbnMsXG4gICAgfSxcbiAgfTtcbiAgaWYgKHJlYWN0KSB7XG4gICAgYmFiZWxMb2FkZXIub3B0aW9ucy5jYWxsZXIgPSB7XG4gICAgICBoYXNKc3hSdW50aW1lLFxuICAgICAgLi4uYmFiZWxMb2FkZXIub3B0aW9ucy5jYWxsZXIsXG4gICAgfTtcbiAgICBpZiAobm9Ib3RSZWxvYWQpIHtcbiAgICAgIGJhYmVsTG9hZGVyLm9wdGlvbnMuY2FsbGVyLm5vSG90UmVsb2FkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKGxpYnJhcnkpIHtcbiAgICBiYWJlbExvYWRlci5vcHRpb25zLmNhbGxlci5saWJyYXJ5ID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gYmFiZWxMb2FkZXI7XG59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