@alicloud/console-toolkit-plugin-react
Version:
console toolkit plugin for base react app
88 lines (87 loc) • 3.51 kB
JavaScript
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;
;