UNPKG

@alicloud/console-toolkit-plugin-react

Version:

console toolkit plugin for base react app

88 lines (87 loc) 3.51 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.jsx = void 0; var utils_1 = require("../../../utils"); var es5ImcompatibleVersions_1 = require("./es5ImcompatibleVersions"); var addEs5IncompatibleVersions = function (config, babelConfig, es5, extraInclude) { var extraBabelIncludes = []; if (es5) { extraBabelIncludes.push(function (path) { if (!path.includes('node_modules')) { return false; } var pkgPath = (0, es5ImcompatibleVersions_1.getPkgPath)(path); return (0, es5ImcompatibleVersions_1.shouldTransform)(pkgPath); }); } if (extraInclude) { if (typeof extraInclude === 'string' && !extraInclude.startsWith('/')) { extraBabelIncludes.push(require.resolve(extraInclude, { paths: [process.cwd()] })); } else { extraBabelIncludes.push(extraInclude); } } extraBabelIncludes.forEach(function (include, index) { var rule = "extraBabelInclude_".concat(index); config.module .rule(rule) .test(/\.m?jsx?$/) .include .add(include) .end() .use('babel-loader') .loader(require.resolve('babel-loader')) .options(__assign(__assign({}, babelConfig), { sourceType: 'unambiguous' })); }); }; var jsx = function (config, options) { var reactHotLoader = options.reactHotLoader, reactCssModules = options.reactCssModules, reactCssModulesContext = options.reactCssModulesContext, reactCssModulesResolvePath = options.reactCssModulesResolvePath, windRc = options.windRc, windCherryPick = options.windCherryPick, // windIntl, es5ImcompatibleVersions = options.es5ImcompatibleVersions, include = options.include, useBuiltIns = options.useBuiltIns, reactRefresh = options.reactRefresh, _a = options.exclude, exclude = _a === void 0 ? /node_modules/ : _a; var rule = (0, utils_1.createRules)(config, { lang: 'js', test: /\.jsx?$/ }); var babelConfig = options.babelOption ? options.babelOption : { presets: [ [ require.resolve('babel-preset-breezr-wind'), { reactHotLoader: reactHotLoader, reactRefresh: reactRefresh, reactCssModules: reactCssModules, reactCssModulesContext: reactCssModulesContext, reactCssModulesResolvePath: reactCssModulesResolvePath, windRc: windRc, useBuiltIns: useBuiltIns, windCherryPick: windCherryPick, windIntl: false, } ] ] }; if (options.babel) { babelConfig = options.babel(babelConfig); } rule .exclude .add(exclude) .end() .use('babel-loader') .loader(require.resolve('babel-loader')) .options(babelConfig); addEs5IncompatibleVersions(config, babelConfig, !!es5ImcompatibleVersions, include); }; exports.jsx = jsx;