Skip to content

Commit

Permalink
chore: use rollup to produce dist bundle
Browse files Browse the repository at this point in the history
  • Loading branch information
mjeanroy committed Apr 5, 2020
1 parent 2da0917 commit 454553e
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 9 deletions.
14 changes: 13 additions & 1 deletion .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,17 @@

"plugins": [
"add-module-exports"
]
],

"env": {
"rollup": {
"presets": [
[
"@babel/preset-env", {
"modules": "false"
}
]
]
}
}
}
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
"fancy-log": "1.3.3",
"fs-extra": "9.0.0",
"gulp": "4.0.2",
"gulp-babel": "8.0.0",
"gulp-bump": "3.1.3",
"gulp-conventional-changelog": "2.0.29",
"gulp-eslint": "6.0.0",
Expand All @@ -61,8 +60,11 @@
"jasmine-core": "3.5.0",
"rimraf": "3.0.2",
"rollup": "1.32.1",
"rollup-plugin-babel": "4.4.0",
"rollup-plugin-commonjs": "10.1.0",
"rollup-plugin-node-resolve": "5.2.0",
"rollup-plugin-prettier": "0.6.0",
"rollup-plugin-strip-banner": "1.2.0",
"tmp": "0.1.0"
}
}
14 changes: 7 additions & 7 deletions scripts/build/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@
* SOFTWARE.
*/

const path = require('path');
const gulp = require('gulp');
const babel = require('gulp-babel');
const config = require('../config');
const rollup = require('rollup');
const config = require('./rollup.config');

module.exports = function build() {
return gulp.src(path.join(config.src, '**', '*.js'))
.pipe(babel())
.pipe(gulp.dest(config.dist));
return rollup.rollup(config).then((bundle) => (
Promise.all(config.output.map((output) => (
bundle.write(output)
)))
));
};
67 changes: 67 additions & 0 deletions scripts/build/rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/**
* The MIT License (MIT)
*
* Copyright (c) 2016-2019 Mickael Jeanroy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

const path = require('path');
const fs = require('fs');
const commenting = require('commenting');
const stripBanner = require('rollup-plugin-strip-banner');
const babel = require('rollup-plugin-babel');
const prettier = require('rollup-plugin-prettier');
const config = require('../config');
const pkg = require('../../package.json');
const license = fs.readFileSync(path.join(config.root, 'LICENSE'), 'utf-8');

module.exports = {
input: path.join(config.src, 'index.js'),

output: [
{
format: 'cjs',
file: path.join(config.dist, 'index.js'),
banner: commenting(license, {
extension: '.js',
}),
},
],

plugins: [
stripBanner(),

babel({
envName: 'rollup',
}),

prettier({
parser: 'babel',
}),
],

external: [
'fs',
'path',

...Object.keys(pkg.dependencies),
...Object.keys(pkg.peerDependencies),
],
};

0 comments on commit 454553e

Please sign in to comment.