91 lines
2.0 KiB
JavaScript
91 lines
2.0 KiB
JavaScript
import resolve from '@rollup/plugin-node-resolve';
|
|
import commonjs from '@rollup/plugin-commonjs';
|
|
import {terser} from "rollup-plugin-terser";
|
|
import json from '@rollup/plugin-json';
|
|
import { babel } from '@rollup/plugin-babel';
|
|
import autoExternal from 'rollup-plugin-auto-external';
|
|
import bundleSize from 'rollup-plugin-bundle-size'
|
|
|
|
const lib = require("./package.json");
|
|
const outputFileName = 'axios';
|
|
const name = "axios";
|
|
const input = './lib/axios.js';
|
|
|
|
const buildConfig = ({es5, browser = true, minifiedVersion = true, ...config}) => {
|
|
|
|
const build = ({minified}) => ({
|
|
input,
|
|
...config,
|
|
output: {
|
|
...config.output,
|
|
file: `${config.output.file}.${minified ? "min.js" : "js"}`
|
|
},
|
|
plugins: [
|
|
json(),
|
|
resolve({browser}),
|
|
commonjs(),
|
|
minified && terser(),
|
|
minified && bundleSize(),
|
|
...(es5 ? [babel({
|
|
babelHelpers: 'bundled',
|
|
presets: ['@babel/preset-env']
|
|
})] : []),
|
|
...(config.plugins || []),
|
|
]
|
|
});
|
|
|
|
const configs = [
|
|
build({minified: false}),
|
|
];
|
|
|
|
if (minifiedVersion) {
|
|
configs.push(build({minified: true}))
|
|
}
|
|
|
|
return configs;
|
|
};
|
|
|
|
export default async () => {
|
|
const year = new Date().getFullYear();
|
|
const banner = `// Axios v${lib.version} Copyright (c) ${year} ${lib.author} and contributors`;
|
|
|
|
return [
|
|
...buildConfig({
|
|
es5: true,
|
|
output: {
|
|
file: `dist/${outputFileName}`,
|
|
name,
|
|
format: "umd",
|
|
exports: "default",
|
|
banner
|
|
}
|
|
}),
|
|
|
|
...buildConfig({
|
|
output: {
|
|
file: `dist/esm/${outputFileName}`,
|
|
format: "esm",
|
|
preferConst: true,
|
|
exports: "named",
|
|
banner
|
|
}
|
|
}),
|
|
// Node.js commonjs build
|
|
{
|
|
input,
|
|
output: {
|
|
file: `dist/node/${name}.cjs`,
|
|
format: "cjs",
|
|
preferConst: true,
|
|
exports: "default",
|
|
banner
|
|
},
|
|
plugins: [
|
|
autoExternal(),
|
|
resolve(),
|
|
commonjs()
|
|
]
|
|
}
|
|
]
|
|
};
|