jarvis-react
Version:
React脚手架及命令行工具合集
67 lines (66 loc) • 2.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.rollupTransform = exports.getRollupConfig = void 0;
const rollup_1 = require("rollup");
const plugin_commonjs_1 = __importDefault(require("@rollup/plugin-commonjs"));
const plugin_babel_1 = __importDefault(require("@rollup/plugin-babel"));
const plugin_typescript_1 = __importDefault(require("@rollup/plugin-typescript"));
const plugin_node_resolve_1 = __importDefault(require("@rollup/plugin-node-resolve"));
const rollup_plugin_postcss_1 = __importDefault(require("rollup-plugin-postcss"));
const babel_1 = require("./babel");
const function_1 = require("../util/function");
const defaultGlobals = {
react: 'React',
'react-dom': 'ReactDOM',
'react/jsx-runtime': 'jsxRuntime',
};
const defaultExternal = ['react', 'react-dom', 'react/jsx-runtime'];
function getRollupConfig(options) {
const pkg = function_1.readProjectPackage();
const { globals = defaultGlobals, name = pkg.name, external = defaultExternal, outDir = 'dist', } = options;
const babelConfig = babel_1.getBabelConfig(options);
return {
input: function_1.resolveProjectFile('src'),
output: {
file: `${outDir}/index.js`,
format: 'umd',
name,
globals,
},
context: 'window',
external: [...external],
plugins: [
rollup_plugin_postcss_1.default({
// @ts-ignore
use: {
less: {
javascriptEnabled: true,
},
},
}),
plugin_node_resolve_1.default({
mainFields: ['module', 'jsxnext:main', 'main'],
extensions: ['.tsx', '.ts', '.jsx', '.js'],
}),
plugin_babel_1.default({
...babelConfig,
babelHelpers: 'runtime',
}),
plugin_commonjs_1.default({
include: /node_modules/,
}),
plugin_typescript_1.default({ sourceMap: false }),
],
};
}
exports.getRollupConfig = getRollupConfig;
async function rollupTransform(options) {
const { output, ...rest } = getRollupConfig(options);
const bundle = await rollup_1.rollup(rest);
await bundle.write(output);
await bundle.close();
}
exports.rollupTransform = rollupTransform;