UNPKG

@alicd/micro-stark

Version:

cone微应用

102 lines (92 loc) 2.71 kB
import babel from '@rollup/plugin-babel'; import buble from '@rollup/plugin-buble'; import nodeResolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; const path = require('path'); const replace = require('rollup-plugin-replace'); const pkg = require('../package.json'); const version = process.env.VERSION || pkg.version; const banner = `/** * ${pkg.name} v${version} * (c) ${new Date().getFullYear()} ${pkg.author} */`; const resolve = _path => path.resolve(__dirname, '../', _path); const configs = { umdDev: { input: resolve('src/index.js'), file: resolve('dist/microStark.js'), format: 'umd', env: 'development', }, umdProd: { input: resolve('src/index.js'), file: resolve('dist/microStark.min.js'), format: 'umd', env: 'production', }, commonjs: { input: resolve('src/index.js'), file: resolve('dist/microStark.common.js'), format: 'cjs', }, esm: { input: resolve('src/index.js'), file: resolve('dist/microStark.esm.js'), format: 'es', }, }; function genConfig(opts) { const config = { input: { input: opts.input, external: ['axios','react'], plugins: [ nodeResolve({ mainFields: ['module', 'jsnext:main', 'browser', 'main'], }), commonjs(), replace({ __VERSION__: version, }), babel({ babelHelpers: 'bundled', babelrc: true, exclude: 'node_modules/**', extensions: ['.js', 'ts'], }), buble({ transforms: { generator: false, }, }), ], }, output: { banner, file: opts.file, format: opts.format, globals: { axios: 'axios', react: 'react', }, exports:'named', name: 'microStark', }, }; if (opts.env) { config.input.plugins.unshift( replace({ 'process.env.NODE_ENV': JSON.stringify(opts.env), }) ); } return config; } function mapValues(obj, fn) { const res = {}; Object.keys(obj).forEach(key => { res[key] = fn(obj[key], key); }); return res; } module.exports = mapValues(configs, genConfig);