mirror of
https://github.com/axios/axios.git
synced 2026-04-11 02:11:50 +08:00
* 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>
135 lines
3.2 KiB
JavaScript
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()],
|
|
},
|
|
];
|
|
};
|