Skip to content

Commit

Permalink
chore: build single output dist file
Browse files Browse the repository at this point in the history
  • Loading branch information
mjeanroy committed Apr 6, 2020
1 parent 3b7bc23 commit e0d9441
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 13 deletions.
24 changes: 22 additions & 2 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
{
"presets": [
"@babel/preset-env"
]
[
"@babel/preset-env", {
"modules": "cjs"
}
]
],

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

"env": {
"rollup": {
"presets": [
[
"@babel/preset-env", {
"modules": "false"
}
]
]
}
}
}
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,24 @@
"@babel/preset-env": "7.9.0",
"@babel/register": "7.9.0",
"@types/prettier": "1.19.1",
"babel-plugin-add-module-exports": "1.0.2",
"eslint": "6.8.0",
"eslint-config-google": "0.14.0",
"fancy-log": "1.3.3",
"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",
"gulp-git": "2.10.1",
"gulp-jasmine": "4.0.0",
"gulp-prettier": "2.3.0",
"jasmine-core": "3.5.0",
"lodash.startswith": "4.2.1",
"q": "1.5.1",
"rimraf": "3.0.2",
"rollup": "1.32.0",
"rollup-plugin-babel": "4.4.0",
"rollup-plugin-license": "1.0.0",
"rollup-plugin-strip-banner": "1.2.0",
"tmp": "0.1.0"
}
}
16 changes: 7 additions & 9 deletions scripts/build/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,13 @@
* SOFTWARE.
*/

const path = require('path');
const gulp = require('gulp');
const babel = require('gulp-babel');
const prettier = require('gulp-prettier');
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(prettier())
.pipe(gulp.dest(config.dist));
return rollup.rollup(config).then((bundle) => (
Promise.all(config.output.map((output) => (
bundle.write(output)
)))
));
};
71 changes: 71 additions & 0 deletions scripts/build/rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/**
* The MIT License (MIT)
*
* Copyright (c) 2017-2020 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 prettier = require('prettier');
const stripBanner = require('rollup-plugin-strip-banner');
const babel = require('rollup-plugin-babel');
const license = require('rollup-plugin-license');
const config = require('../config');
const pkg = require('../../package.json');

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

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

plugins: [
stripBanner(),

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

license({
banner: {
content: {
file: path.join(config.root, 'LICENSE'),
},
},
}),

{
renderChunk(code) {
return prettier.format(code, {
parser: 'babel',
});
},
},
],

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

0 comments on commit e0d9441

Please sign in to comment.