axios-axios/rollup.config.js
Jay ef3711d1b3
feat: implement prettier and fix all issues (#7385)
* feat: implement prettier and fix all issues

* fix: failing tests

* fix: implement feedback from codel, ai etc

* chore: dont throw in trim function

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix: incorrect fix

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-02-14 16:59:48 +02:00

135 lines
3.2 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';
import aliasPlugin from '@rollup/plugin-alias';
import path from 'path';
const lib = require('./package.json');
const outputFileName = 'axios';
const name = 'axios';
const namedInput = './index.js';
const defaultInput = './lib/axios.js';
const buildConfig = ({ es5, browser = true, minifiedVersion = true, alias, ...config }) => {
const { file } = config.output;
const ext = path.extname(file);
const basename = path.basename(file, ext);
const extArr = ext.split('.');
extArr.shift();
const build = ({ minified }) => ({
input: namedInput,
...config,
output: {
...config.output,
file: `${path.dirname(file)}/${basename}.${(minified ? ['min', ...extArr] : extArr).join('.')}`,
},
plugins: [
aliasPlugin({
entries: alias || [],
}),
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 [
// browser ESM bundle for CDN
...buildConfig({
input: namedInput,
output: {
file: `dist/esm/${outputFileName}.js`,
format: 'esm',
preferConst: true,
exports: 'named',
banner,
},
}),
// browser ESM bundle for CDN with fetch adapter only
// Downsizing from 12.97 kB (gzip) to 12.23 kB (gzip)
/* ...buildConfig({
input: namedInput,
output: {
file: `dist/esm/${outputFileName}-fetch.js`,
format: "esm",
preferConst: true,
exports: "named",
banner
},
alias: [
{ find: './xhr.js', replacement: '../helpers/null.js' }
]
}),*/
// Browser UMD bundle for CDN
...buildConfig({
input: defaultInput,
es5: true,
output: {
file: `dist/${outputFileName}.js`,
name,
format: 'umd',
exports: 'default',
banner,
},
}),
// Browser CJS bundle
...buildConfig({
input: defaultInput,
es5: false,
minifiedVersion: false,
output: {
file: `dist/browser/${name}.cjs`,
name,
format: 'cjs',
exports: 'default',
banner,
},
}),
// Node.js commonjs bundle
{
input: defaultInput,
output: {
file: `dist/node/${name}.cjs`,
format: 'cjs',
preferConst: true,
exports: 'default',
banner,
},
plugins: [autoExternal(), resolve(), commonjs()],
},
];
};