axios-miniprogram/rollup.config.js

70 lines
1.5 KiB
JavaScript

import path from 'path';
import rimraf from 'rimraf';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import { babel } from '@rollup/plugin-babel';
import typescript from 'rollup-plugin-typescript2';
import commonjs from '@rollup/plugin-commonjs';
import { DEFAULT_EXTENSIONS } from '@babel/core';
import filterEmptyLines from './scripts/@rollup/plugin-filter-empty-lines';
import pkg from './package.json';
const entryFilePath = path.resolve(__dirname, 'src/index.ts');
const distPath = path.resolve(__dirname, 'dist');
const pkgName = pkg.name;
const extensions = [].concat(DEFAULT_EXTENSIONS, '.ts');
const plugins = [
nodeResolve({
extensions,
}),
typescript({
useTsconfigDeclarationDir: true,
}),
babel({
extensions,
babelHelpers: 'bundled',
comments: false,
}),
commonjs({
include: /node_modules/,
}),
filterEmptyLines(),
];
function resolveOutputFilePath(format) {
return path.resolve(distPath, format, `${pkgName}.js`);
}
function generateConfig(format) {
return {
input: entryFilePath,
output: {
file: resolveOutputFilePath(format),
format,
name: pkgName,
exports: 'default',
indent: false,
},
plugins,
};
}
let run;
const promise = new Promise((resolve, reject) => {
run = (err) => {
if (err) {
reject(err);
return;
}
resolve([generateConfig('esm'), generateConfig('cjs')]);
};
});
export default () => {
rimraf(distPath, run);
return promise;
};