mirror of
https://github.com/axios/axios.git
synced 2026-04-11 02:11:50 +08:00
* chore: small fixes to tests * feat: transitional move to vitests * feat: moving unit tests in progress * feat: moving more unit tests over * feat: more tests moved * feat: updated more sections of the http test * chore: wip http tests * chore: wip http tests * chore: more http tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: tests * chore: remove un-needed docs * chore: update package lock * chore: update lock
128 lines
3.0 KiB
JavaScript
128 lines
3.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';
|
|
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 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 (transpiled for Node 12)
|
|
{
|
|
input: defaultInput,
|
|
output: {
|
|
file: `dist/node/${name}.cjs`,
|
|
format: 'cjs',
|
|
preferConst: true,
|
|
exports: 'default',
|
|
banner,
|
|
},
|
|
plugins: [
|
|
autoExternal(),
|
|
resolve(),
|
|
commonjs(),
|
|
babel({
|
|
babelHelpers: 'bundled',
|
|
presets: [['@babel/preset-env', { targets: { node: '12' } }]],
|
|
}),
|
|
],
|
|
},
|
|
];
|
|
};
|