Skip to content

Commit

Permalink
move to rollup for better umd bundles
Browse files Browse the repository at this point in the history
add bundled outputs for commonjs and esm

remove unnecessary config rules from module bundles

single output since it doesnt need to be dynamic
  • Loading branch information
Adam Markon committed Mar 23, 2019
1 parent f8c96ee commit 958c899
Show file tree
Hide file tree
Showing 7 changed files with 338 additions and 1,241 deletions.
18 changes: 11 additions & 7 deletions package.json
Expand Up @@ -5,9 +5,8 @@
"main": "lib/GeneralStore.js",
"scripts": {
"build:commonjs": "BABEL_ENV=commonjs babel src --ignore *-test.js --out-dir lib --extensions \".ts\",\".tsx\"",
"build:umd": "NODE_ENV=development webpack --config webpack.config.development.js --entry ./lib/GeneralStore.js",
"build:umd:min": "NODE_ENV=production webpack --config webpack.config.production.js --entry ./lib/GeneralStore.js",
"build": "npm run build:commonjs && npm run build:umd && npm run build:umd:min",
"build:umd": "rollup -c",
"build": "npm run build:commonjs && npm run build:umd",
"build-and-test": "npm run clean && npm run build && npm test",
"clean": "rm -rf ./dist && rm -rf lib",
"format": "prettier --single-quote -l --bracket-spacing --jsx-bracket-same-line --trailing-comma es5 --parser flow --write \"{src,__{tests,mocks}__}/**/*.js\"",
Expand Down Expand Up @@ -39,7 +38,6 @@
},
"homepage": "https://github.com/HubSpot/general-store",
"peerDependencies": {
"prop-types": "^15.7.2",
"react": ">= 16.8.0"
},
"devDependencies": {
Expand All @@ -65,11 +63,17 @@
"invariant": "^2.2.1",
"jest": "24.5.0",
"prettier": "1.16.4",
"prop-types": "^15.7.2",
"react": "16.8.4",
"react-dom": "16.8.4",
"typescript": "^3.3.3333",
"webpack": "4.29.6",
"webpack-cli": "3.2.3"
"rollup": "^1.6.0",
"rollup-plugin-commonjs": "^9.2.1",
"rollup-plugin-node-resolve": "^4.0.1",
"rollup-plugin-replace": "^2.1.1",
"rollup-plugin-typescript": "^1.0.0",
"rollup-plugin-uglify": "^6.0.2",
"tslib": "^1.9.3",
"typescript": "^3.3.3333"
},
"jest": {
"roots": [
Expand Down
70 changes: 70 additions & 0 deletions rollup.config.js
@@ -0,0 +1,70 @@
import typescript from 'rollup-plugin-typescript';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import replace from 'rollup-plugin-replace';
import { uglify } from 'rollup-plugin-uglify';

const bundle = env => {
const file =
env === 'production'
? 'dist/general-store.min.js'
: 'dist/general-store.js';
const additionalPlugins = [];
if (env === 'production') {
additionalPlugins.push(uglify());
}
const config = {
input: './src/GeneralStore.ts',
plugins: [
typescript(),
commonjs(),
replace({
'process.env.NODE_ENV': JSON.stringify(env),
}),
resolve({
browser: true,
}),
...additionalPlugins,
],
output: [
{
file,
format: 'umd',
exports: 'named',
compact: env === 'production',
globals: {
react: 'React',
},
},
],
external: ['react'],
};
return config;
};
const moduleBundleConfig = {
input: './src/GeneralStore.ts',
plugins: [
typescript(),
commonjs(),
resolve({
browser: true,
}),
],
output: [
{
file: `dist/general-store.cjs.js`,
format: 'cjs',
},
{
file: `dist/general-store.esm.js`,
format: 'esm',
},
],
external: ['react'],
};

export default [
bundle('development'),
bundle('production'),
moduleBundleConfig,
];
1 change: 1 addition & 0 deletions tsconfig.json
@@ -1,5 +1,6 @@
{
"compilerOptions": {
"esModuleInterop": true,
"module": "commonjs",
"jsx": "react"
},
Expand Down
24 changes: 0 additions & 24 deletions webpack.config.base.js

This file was deleted.

16 changes: 0 additions & 16 deletions webpack.config.development.js

This file was deleted.

15 changes: 0 additions & 15 deletions webpack.config.production.js

This file was deleted.

0 comments on commit 958c899

Please sign in to comment.