Skip to content

Commit

Permalink
fix: simplify build
Browse files Browse the repository at this point in the history
  • Loading branch information
Diego committed Jul 18, 2018
1 parent 11e83ee commit 13bd2ee
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 31 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "observable-membrane",
"version": "0.25.0",
"description": "A Javascript Membrane implementation using Proxies to observe mutation on an object graph",
"main": "dist/commonjs/observable-membrane.js",
"main": "dist/umd/observable-membrane.js",
"module": "dist/modules/observable-membrane.js",
"license": "MIT",
"author": "David Turissini <dturissini@salesforce.com>",
Expand Down
46 changes: 16 additions & 30 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
/* eslint-env node */

// -- Modules -----------------------------------------------------------------
const path = require('path');
const typescript = require('rollup-plugin-typescript');
const replace = require('rollup-plugin-replace');
const babelMinify = require('babel-minify');
const { version } = require('./package.json');

// -- Config ------------------------------------------------------------------
const input = path.resolve(__dirname, 'src/main.ts');
const umdDirectory = path.resolve(__dirname, 'dist/umd');
const commonJSDirectory = path.resolve(__dirname, 'dist/commonjs');
const modulesDirectory = path.resolve(__dirname, 'dist/modules');

const name = 'ObservableMembrane';

const umdDir = path.resolve(__dirname, 'dist/umd');
const modulesDir = path.resolve(__dirname, 'dist/modules');
const banner = (`/**\n * Copyright (C) 2017 salesforce.com, inc.\n */`);
const footer = `/** version: ${version} */`;
const prodToken = JSON.stringify('production');

const baseRollupConfig = {
input,
name,
banner,
footer,
};

// -- Helpers -----------------------------------------------------------------
function inlineMinifyPlugin() {
return {
transformBundle(code) {
Expand All @@ -34,34 +25,29 @@ function inlineMinifyPlugin() {
function rollupConfig({ formats, prod }) {
const plugins = [
typescript({ target: 'es6', typescript: require('typescript') }),
prod && replace({ 'process.env.NODE_ENV': JSON.stringify('production') }),
prod && replace({ 'process.env.NODE_ENV': prodToken }),
prod && inlineMinifyPlugin({})
].filter(Boolean);

const output = formats.map(format => {
const targetDirectory = format === 'umd' ? umdDirectory : format === 'es' ? modulesDirectory : commonJSDirectory;

const targetName = [
'observable-membrane',
prod ? '.min' : '',
'.js'
].join('');
const targetDirectory = format === 'umd' ? umdDir : modulesDir;
const targetName = `observable-membrane${prod ? '.min' : '' }.js`;

return {
name: 'ObservableMembrane',
format,
file: path.join(targetDirectory, targetName),
format,
banner,
footer
}
});

return Object.assign({}, baseRollupConfig, {
output,
plugins
});
return { input, output, plugins };
}

// -- Rollup ------------------------------------------------------------------

module.exports = [
// DEV & PROD
rollupConfig({ formats: ['umd', 'cjs', 'es'], prod: false }),
rollupConfig({ formats: ['umd', 'es'], prod: false }),
rollupConfig({ formats: ['umd'], prod: true })
];

0 comments on commit 13bd2ee

Please sign in to comment.