|
import { babel } from '@rollup/plugin-babel' |
|
import { nodeResolve } from '@rollup/plugin-node-resolve' |
|
import terser from '@rollup/plugin-terser' |
|
import commonjs from '@rollup/plugin-commonjs' |
|
import { readFileSync } from 'fs' |
|
const pkg = JSON.parse(readFileSync(new URL('package.json', import.meta.url))) |
|
|
|
const getBabelOptions = ({ useESModules, plugins = [] }) => ({ |
|
exclude: /node_modules/, |
|
babelHelpers: 'runtime', |
|
plugins: [['@babel/transform-runtime', { useESModules }]].concat(plugins), |
|
comments: false |
|
}) |
|
|
|
const input = './src/index.js' |
|
|
|
const external = id => !id.startsWith('.') && !id.startsWith('/') && !id.includes(':') |
|
|
|
export default [ |
|
{ |
|
input, |
|
output: { |
|
dir: 'dist/cjs', |
|
preserveModules: true, |
|
|
|
format: 'cjs' |
|
}, |
|
external, |
|
|
|
|
|
|
|
plugins: [babel(getBabelOptions({ |
|
useESModules: false, |
|
plugins: [['add-module-exports']] |
|
}))] |
|
}, |
|
{ |
|
input, |
|
output: { |
|
dir: 'dist/esm', |
|
preserveModules: true, |
|
|
|
format: 'esm' |
|
}, |
|
external, |
|
|
|
|
|
|
|
plugins: [babel(getBabelOptions({ useESModules: true }))] |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
input, |
|
output: { |
|
file: pkg.browser, |
|
format: 'umd', |
|
name: 'i18nextResourcesToBackend' |
|
}, |
|
plugins: [commonjs(), babel(getBabelOptions({ useESModules: true })), nodeResolve()] |
|
}, |
|
{ |
|
input, |
|
output: { |
|
file: pkg.browser.replace('.js', '.min.js'), |
|
format: 'umd', |
|
name: 'i18nextResourcesToBackend' |
|
}, |
|
plugins: [commonjs(), babel(getBabelOptions({ useESModules: true })), nodeResolve(), terser()] |
|
} |
|
] |
|
|