Skip to content

Commit

Permalink
chore(bundles): improve building bundles
Browse files Browse the repository at this point in the history
  • Loading branch information
berndartmueller committed Sep 1, 2020
1 parent ba5ec5b commit a4db77e
Show file tree
Hide file tree
Showing 27 changed files with 996 additions and 51 deletions.
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ website
.eslintrc.js
jest.config.js
rollup.config.js
build
postcss.config.js
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ docs/* linguist-documentation
website/* linguist-documentation
.eslintrc.js linguist-vendored
jest.config.js linguist-vendored
postcss.config.js linguist-vendored
rollup.config.js linguist-vendored
build/* linguist-vendored
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Virchual uses virtual slides to only render visible slides. No unnecessary DOM e
Just add a link to the css file in your `<head>`:

```html
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/virchual@next/dist/index.css" />
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/virchual@next/dist/virchual.css" />
```

Then, before your closing `<body>` tag add:
Expand Down
13 changes: 13 additions & 0 deletions build/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import typescript from 'rollup-plugin-typescript2';

export default {
output: {
name: 'Virchual',
sourcemap: true,
},
plugins: [
typescript({
typescript: require('typescript'),
}),
],
};
26 changes: 26 additions & 0 deletions build/build.min.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import build from './build';
import { terser } from 'rollup-plugin-terser';
import bundleSize from 'rollup-plugin-bundle-size';

export default Object.assign(build, {
plugins: build.plugins.concat([
terser({
compress: {
drop_console: true,
keep_fargs: false,
passes: 2,
},
keep_fnames: false,
ecma: 6,
mangle: {
properties: {
keep_quoted: true,
builtins: false,
reserved: ['next', 'prev', 'register', 'Virchual'],
},
toplevel: false,
},
}),
bundleSize(),
]),
});
10 changes: 10 additions & 0 deletions build/esm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import pkg from './../package.json';
import build from './build';

export default Object.assign(build, {
input: 'entry/entry-complete.ts',
output: Object.assign(build.output, {
file: pkg.module,
format: 'es',
}),
});
10 changes: 10 additions & 0 deletions build/esm.modular.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import pkg from './../package.json';
import build from './build';

export default Object.assign(build, {
input: 'entry/entry-modular.ts',
output: Object.assign(build.output, {
file: pkg.module.split('.esm.js')[0] + '.modular.esm.js',
format: 'es',
}),
});
10 changes: 10 additions & 0 deletions build/umd.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import pkg from './../package.json';
import build from './build';

export default Object.assign(build, {
input: 'entry/entry-complete.ts',
output: Object.assign(build.output, {
file: pkg.browser,
format: 'umd',
}),
});
10 changes: 10 additions & 0 deletions build/umd.min.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import build from './build.min';
import pkg from './../package.json';

export default Object.assign(build, {
input: 'entry/entry-complete.ts',
output: Object.assign(build.output, {
file: pkg.browser.split('.js')[0] + '.min.js',
format: 'umd',
}),
});
12 changes: 12 additions & 0 deletions entry/entry-complete.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Virchual as VirchualCore, VirchualSettings } from './../src/virchual';
import { Controls } from './../src/components/controls';
import { Lazy } from './../src/components/lazy';

export default class Virchual extends VirchualCore {
constructor(public container: HTMLElement, public settings: VirchualSettings = {}) {
super(container, settings);

this.register(Controls, { isEnabled: true });
this.register(Lazy, { threshold: 300 });
}
}
8 changes: 8 additions & 0 deletions entry/entry-modular.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { Virchual } from './../src/virchual';

export { Controls } from './../src/components/controls';
export { Lazy } from './../src/components/lazy';

export default {
Virchual,
};
4 changes: 2 additions & 2 deletions examples/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Lazy } from './../../src/components/lazy/lazy';
import './../../dist/index.css';

import { Virchual, Controls } from './../../src/index';
import Virchual from './../../src/index';

[].forEach.call(document.querySelectorAll('.image-swiper'), (slider: HTMLElement) => {
const instance = new Virchual(slider, {
Expand Down Expand Up @@ -33,7 +33,7 @@ import { Virchual, Controls } from './../../src/index';
},
});

instance.register(Controls, { isEnabled: true });
// instance.register(Controls, { isEnabled: true });
instance.register(Lazy, { threshold: 300 });

// instance.mount();
Expand Down
Loading

0 comments on commit a4db77e

Please sign in to comment.