A better split into two versions

Additionally add some typing to the Rollup config files
pull/14/head
Nikita Karamov 2020-07-23 18:39:28 +02:00
parent 8f1d52e281
commit 522f0960d4
No known key found for this signature in database
GPG Key ID: E40DFE6E993540FF
3 changed files with 54 additions and 54 deletions

View File

@ -14,13 +14,14 @@ const outputDir = isDev ? './dev/' : './dist/';
const bannerText = `${pkg.name} v${pkg.version} by Nikita Karamov\n${pkg.homepage}`; const bannerText = `${pkg.name} v${pkg.version} by Nikita Karamov\n${pkg.homepage}`;
/* /**
* PLUGINS * Plugins to build the project
*
* @type {Plugin[]}
*/ */
const plugins = [
const plugins = []; typescript(),
];
plugins.push(typescript());
if (!isDev) { if (!isDev) {
plugins.push(strip({ plugins.push(strip({
@ -51,58 +52,57 @@ plugins.push(postcss({
], ],
})); }));
/* /**
* OUTPUTS * @typedef {import('rollup').OutputOptions} OutputOptions
*/ */
const output = []; /**
*
* @param {string} baseDir base directory for the output files
* @return {OutputOptions[]} array of outputs
*/
const getOutputs = (baseDir) => {
const result = [];
if (isDev) { if (isDev) {
output.push({ result.push({
name: pkg.name,
format: 'iife',
file: `${outputDir}${pkg.name}.js`,
});
} else {
output.push({
name: pkg.name,
format: 'cjs',
file: `${outputDir}${pkg.name}.cjs`,
});
output.push({
name: pkg.name,
format: 'esm',
file: `${outputDir}${pkg.name}.mjs`,
});
output.push({
name: pkg.name,
format: 'iife',
file: `${outputDir}${pkg.name}.noinit.min.js`,
plugins: [terser({ output: { comments: false } })],
});
}
const config = [{
input: isDev ? './src/autoinit.ts' : './src/shareon.ts',
output,
plugins,
}];
if (!isDev) {
config.push({
input: './src/autoinit.ts',
output: {
name: pkg.name, name: pkg.name,
format: 'iife', format: 'iife',
file: `${outputDir}${pkg.name}.min.js`, file: `${baseDir}${pkg.name}.js`,
});
} else {
result.push({
name: pkg.name,
format: 'cjs',
file: `${baseDir}${pkg.name}.cjs`,
});
result.push({
name: pkg.name,
format: 'esm',
file: `${baseDir}${pkg.name}.mjs`,
});
result.push({
name: pkg.name,
format: 'iife',
file: `${baseDir}${pkg.name}.min.js`,
plugins: [terser({ output: { comments: false } })], plugins: [terser({ output: { comments: false } })],
}, });
plugins, }
});
}
/* return result;
* EXPORT };
*/
const config = [
{
input: './src/autoinit.ts',
output: getOutputs(`${outputDir}`),
plugins,
},
{
input: './src/shareon.ts',
output: getOutputs(`${outputDir}noinit/`),
plugins: plugins.slice(0, -1),
},
];
export default config; export default config;

View File

@ -1,3 +1,5 @@
import './style.scss';
import initializeShareon from './shareon'; import initializeShareon from './shareon';
window.onload = () => { window.onload = () => {

View File

@ -1,5 +1,3 @@
import './style.scss';
interface PublishPreset { interface PublishPreset {
url: string, url: string,
title: string, title: string,